Make some changes noticed while porting to C++

This commit is contained in:
Rangi42
2023-11-05 16:08:07 -05:00
committed by Eldred Habert
parent 6ac1dd8966
commit 02f9128d07
19 changed files with 72 additions and 61 deletions

View File

@@ -11,6 +11,11 @@
#include "asm/lexer.h"
enum FileStackNodeType {
NODE_REPT,
NODE_FILE,
NODE_MACRO,
};
struct FileStackNode {
struct FileStackNode *parent; // Pointer to parent node, for error reporting
@@ -21,11 +26,7 @@ struct FileStackNode {
bool referenced; // If referenced, don't free!
uint32_t ID; // Set only if referenced: ID within the object file, -1 if not output yet
enum {
NODE_REPT,
NODE_FILE,
NODE_MACRO,
} type;
enum FileStackNodeType type;
};
struct FileStackReptNode { // NODE_REPT

View File

@@ -11,8 +11,8 @@ void opt_G(char const chars[4]);
void opt_P(uint8_t padByte);
void opt_Q(uint8_t precision);
void opt_L(bool optimize);
void opt_W(char const *flag);
void opt_Parse(char const *option);
void opt_W(char *flag);
void opt_Parse(char *option);
void opt_Push(void);
void opt_Pop(void);

View File

@@ -38,9 +38,9 @@ struct SectionSpec {
extern struct Section *currentSection;
struct Section *sect_FindSectionByName(char const *name);
void sect_NewSection(char const *name, uint32_t secttype, uint32_t org,
void sect_NewSection(char const *name, enum SectionType type, uint32_t org,
struct SectionSpec const *attributes, enum SectionModifier mod);
void sect_SetLoadSection(char const *name, uint32_t secttype, uint32_t org,
void sect_SetLoadSection(char const *name, enum SectionType type, uint32_t org,
struct SectionSpec const *attributes, enum SectionModifier mod);
void sect_EndLoadSection(void);

View File

@@ -6,6 +6,8 @@
#include <tuple>
#include <utility>
#include "platform.h" // __PRETTY_FUNCTION__
template<typename... Ts>
static inline void report() {
puts(__PRETTY_FUNCTION__);

View File

@@ -27,16 +27,18 @@ extern bool beVerbose;
extern bool isWRA0Mode;
extern bool disablePadding;
enum FileStackNodeType {
NODE_REPT,
NODE_FILE,
NODE_MACRO,
};
struct FileStackNode {
struct FileStackNode *parent;
// Line at which the parent context was exited; meaningless for the root level
uint32_t lineNo;
enum {
NODE_REPT,
NODE_FILE,
NODE_MACRO,
} type;
enum FileStackNodeType type;
union {
char *name; // NODE_FILE, NODE_MACRO
struct { // NODE_REPT

View File

@@ -5,6 +5,7 @@
#define RGBDS_LINK_SCRIPT_H
#include <stdint.h>
#include "linkdefs.h"
extern FILE * linkerScript;

View File

@@ -27,6 +27,15 @@
# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
#endif
// gcc has __PRETTY_FUNCTION__, MSVC has __FUNCSIG__, __func__ is standard
#ifndef __PRETTY_FUNCTION__
# ifdef __FUNCSIG__
# define __PRETTY_FUNCTION__ __FUNCSIG__
# else
# define __PRETTY_FUNCTION__ __func__
# endif
#endif
// MSVC doesn't use POSIX types or defines for `read`
#ifdef _MSC_VER
# include <io.h>