mirror of
https://github.com/mirror/tinycc.git
synced 2024-12-28 04:00:06 +08:00
da0d43903b
tccpp.c: - revert "Preprocessor fix + new testcase" Fix was not a fix and nobody could understand the test. This reverts6379f2ee76
- better fix and add new test (pp/18.c) tccgen.c: - remove global variables 'in_sizeof', 'constant_p' - rework comma expression (gexpr()) - merge func/data 'alias_target' codes (See08c777053c
) - move call to do_Static_assert() - better error: "expression expected before '%s'" - fix "statement after label" - remove unnecessary second parameter to block() - remove unnecessary call to decl() - revert changes to old C89 test file See7f0a28f6ca
tccelf.c: - rework "...make undefined global symbol STT_NOTYPE" (Seef44060f8fc
) - move tccelf_add_crtbegin() from libtcc.c tcctest: - unfix K&R fix (keep old look of K&R functions) tccrun.c: - exit(0) returns 0 libtcc.c: - move #defines for -dumpmachine - more explicit error "file not found" (as opposed to error while loading file) tccpe.c, x86_64-gen.c, i386-asm.c, tccasm.c: - use R_X86_64_PLT32 for functions on x86_64-win32 tccdefs.h - empty #defines for _Nonnull, __has_builtin(), etc. configure: - Simpler "macOS .dylib ... VERSION letters." (See6b967b1285
) Makefile: - macOS version also - add cross searchpaths for packages build.yml: - disable codesign on macos-11 (doesn't seem to work)
38 lines
883 B
C
38 lines
883 B
C
/* Check semantics of various constructs to generate renamed symbols. */
|
|
|
|
extern int printf (const char *, ...);
|
|
void target(void);
|
|
void target(void) {
|
|
printf("in target function\n");
|
|
}
|
|
void alias_for_target(void) __attribute__((alias("target")));
|
|
|
|
int g_int = 34;
|
|
int alias_int __attribute__((alias("g_int")));
|
|
|
|
#ifdef __leading_underscore
|
|
# define _ "_"
|
|
#else
|
|
# define _
|
|
#endif
|
|
|
|
void asm_for_target(void) __asm__(_"target");
|
|
int asm_int __asm__(_"g_int");
|
|
|
|
/* This is not supposed to compile, alias targets must be defined in the
|
|
same unit. In TCC they even must be defined before the reference
|
|
void alias_for_undef(void) __attribute__((alias("undefined")));
|
|
*/
|
|
|
|
extern void inunit2(void);
|
|
|
|
int main(void)
|
|
{
|
|
target();
|
|
alias_for_target();
|
|
asm_for_target();
|
|
printf("g_int = %d\nalias_int = %d\nasm_int = %d\n", g_int, alias_int, asm_int);
|
|
inunit2();
|
|
return 0;
|
|
}
|