mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Fixes to the cname patch.
This commit is contained in:
@@ -23,9 +23,9 @@ struct File
|
||||
void *file;
|
||||
}
|
||||
|
||||
extern func int _puts(char* message) @cname("puts");
|
||||
extern func int _puts(char* message) @extname("puts");
|
||||
extern func int printf(char* message, ...);
|
||||
extern func int _putchar(char c) @cname("putchar");
|
||||
extern func int _putchar(char c) @extname("putchar");
|
||||
|
||||
extern File *__stdinp;
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
module std::mem;
|
||||
|
||||
extern func void* _malloc(usize bytes) @cname("malloc");
|
||||
extern func void* _realloc(void* ptr, usize bytes) @cname("realloc");
|
||||
extern func void* _calloc(usize bytes, usize elements) @cname("calloc");
|
||||
extern func void _free(void* ptr) @cname("free");
|
||||
extern func void* _malloc(usize bytes) @extname("malloc");
|
||||
extern func void* _realloc(void* ptr, usize bytes) @extname("realloc");
|
||||
extern func void* _calloc(usize bytes, usize elements) @extname("calloc");
|
||||
extern func void _free(void* ptr) @extname("free");
|
||||
|
||||
enum AllocationKind
|
||||
{
|
||||
|
||||
@@ -26,11 +26,11 @@ void* gWindow = null;
|
||||
void* gScreenSurface = null;
|
||||
|
||||
|
||||
extern func int init(uint flags) @cname("SDL_Init");
|
||||
extern func int initSubSystem(uint flags) @cname("SDL_InitSubSystem");
|
||||
extern func void quitSubSystem(uint flags) @cname("SDL_QuitSubSystem");
|
||||
extern func uint wasInit(uint flags) @cname("SDL_WasInit");
|
||||
extern func void quit() @cname("SDL_Quit");
|
||||
extern func int init(uint flags) @extname("SDL_Init");
|
||||
extern func int initSubSystem(uint flags) @extname("SDL_InitSubSystem");
|
||||
extern func void quitSubSystem(uint flags) @extname("SDL_QuitSubSystem");
|
||||
extern func uint wasInit(uint flags) @extname("SDL_WasInit");
|
||||
extern func void quit() @extname("SDL_Quit");
|
||||
|
||||
enum SDLWindowFlags : c_int
|
||||
{
|
||||
@@ -59,8 +59,8 @@ enum SDLWindowFlags : c_int
|
||||
VULKAN = 0x10000000 /**< window usable for Vulkan surface */
|
||||
}
|
||||
|
||||
extern func void* createWindow(char *title, uint x, uint y, int w, int h, uint flags) @cname("SDL_CreateWindow");
|
||||
extern func void* getWindowSurface(void *window) @cname("SDL_GetWindowSurface");
|
||||
extern func void* createWindow(char *title, uint x, uint y, int w, int h, uint flags) @extname("SDL_CreateWindow");
|
||||
extern func void* getWindowSurface(void *window) @extname("SDL_GetWindowSurface");
|
||||
const uint WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000;
|
||||
extern func int exit(int code);
|
||||
extern func int printf(char *mess, ...);
|
||||
@@ -96,8 +96,8 @@ func void close()
|
||||
quit();
|
||||
}
|
||||
|
||||
extern func int pollEvent(SDL_Event *event) @cname("SDL_PollEvent");
|
||||
extern func int updateWindowSurface(void *window) @cname("SDL_UpdateWindowSurface");
|
||||
extern func int pollEvent(SDL_Event *event) @extname("SDL_PollEvent");
|
||||
extern func int updateWindowSurface(void *window) @extname("SDL_UpdateWindowSurface");
|
||||
|
||||
enum SDLEventType : uint
|
||||
{
|
||||
|
||||
@@ -73,11 +73,11 @@ enum WindowEventID : cint
|
||||
}
|
||||
|
||||
|
||||
extern int getNumVideoDrivers() @cname("SDL_GetNumVideoDrivers");
|
||||
extern char* getVideoDriver(int index) @cname("SDL_GetVideoDriver");
|
||||
extern SdlWindow* createWindowFrom(void* data) @cname("SDL_CreateWindowFrom");
|
||||
extern int getWindowDisplayMode(SdlWindow* window, DisplayMode *mode) @cname("SDL_GetWindowDisplayMode");
|
||||
extern uint getWindowFlags(SdlWindow* window) @cname("SDL_GetWindowFlags");
|
||||
extern int getNumVideoDrivers() @extname("SDL_GetNumVideoDrivers");
|
||||
extern char* getVideoDriver(int index) @extname("SDL_GetVideoDriver");
|
||||
extern SdlWindow* createWindowFrom(void* data) @extname("SDL_CreateWindowFrom");
|
||||
extern int getWindowDisplayMode(SdlWindow* window, DisplayMode *mode) @extname("SDL_GetWindowDisplayMode");
|
||||
extern uint getWindowFlags(SdlWindow* window) @extname("SDL_GetWindowFlags");
|
||||
|
||||
|
||||
const uint WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000;
|
||||
|
||||
@@ -363,7 +363,7 @@ typedef struct
|
||||
bool attr_noreturn : 1;
|
||||
bool attr_inline : 1;
|
||||
bool attr_noinline : 1;
|
||||
bool attr_cname : 1;
|
||||
bool attr_extname : 1;
|
||||
bool attr_stdcall : 1;
|
||||
};
|
||||
|
||||
|
||||
@@ -744,7 +744,7 @@ static AttributeType sema_analyse_attribute(Context *context, Attr *attr, Attrib
|
||||
case ATTRIBUTE_EXTNAME:
|
||||
if (context->module->is_generic)
|
||||
{
|
||||
SEMA_TOKID_ERROR(attr->name, "'cname' attributes are not allowed in generic modules.");
|
||||
SEMA_TOKID_ERROR(attr->name, "'extname' attributes are not allowed in generic modules.");
|
||||
return false;
|
||||
}
|
||||
if (!attr->expr)
|
||||
|
||||
Reference in New Issue
Block a user