Handle __builtin_extract_return_addr
Our architectures don't need anything special for this builtin, just pass through the argument.
This commit is contained in:
3
libtcc.c
3
libtcc.c
@ -904,6 +904,9 @@ LIBTCCAPI TCCState *tcc_new(void)
|
|||||||
# endif
|
# endif
|
||||||
#endif /* ndef TCC_TARGET_PE */
|
#endif /* ndef TCC_TARGET_PE */
|
||||||
|
|
||||||
|
/* Some GCC builtins that are simple to express as macros. */
|
||||||
|
tcc_define_symbol(s, "__builtin_extract_return_addr(x)", "x");
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3027,6 +3027,8 @@ void builtin_test(void)
|
|||||||
printf("bce: %d\n", i);
|
printf("bce: %d\n", i);
|
||||||
i = sizeof (__builtin_choose_expr (1, ll, s));
|
i = sizeof (__builtin_choose_expr (1, ll, s));
|
||||||
printf("bce: %d\n", i);
|
printf("bce: %d\n", i);
|
||||||
|
i = sizeof (__builtin_choose_expr (0, ll, s));
|
||||||
|
printf("bce: %d\n", i);
|
||||||
|
|
||||||
printf("bera: %p\n", __builtin_extract_return_addr((void*)43));
|
printf("bera: %p\n", __builtin_extract_return_addr((void*)43));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user