Skip to content

Can't build with clang compiler #190

Closed
@Pichas

Description

@Pichas

Hello. I'm trying to build your library with clang and have warning and error.

Warning:

src\fastpbkdf2.c:30:9: warning: redefining builtin macro [-Wbuiltin-macro-redefined]
[build]    30 | #define _Pragma __pragma

Errors

[build] src\aegis\common\cpu.c:150:44: error: too few arguments provided to function-like macro invocation
[build]   150 |     __cpuid((int *) cpu_info, cpu_info_type);
[build] C:\Program Files\LLVM\lib\clang\19\include\cpuid.h:269:9: note: macro '__cpuid' defined here
[build]   269 | #define __cpuid(__leaf, __eax, __ebx, __ecx, __edx) 

[build] src\aegis\common\cpu.c:150:5: error: builtin functions must be directly called
[build]   150 |     __cpuid((int *) cpu_info, cpu_info_type);

Proposed solutions:

for warning: add a guard

+ #ifndef _Pragma
#define _Pragma __pragma
+ #endif

for error: disambiguate function call by using round brackets

- __cpuid((int *) cpu_info, cpu_info_type);
+ (__cpuid)((int *) cpu_info, cpu_info_type);

or use pragma push/pop

+ #pragma push_macro("__cpuid")
+ #undef __cpuid
    __cpuid((int*)cpu_info, cpu_info_type);
+ #pragma pop_macro("__cpuid")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions