From fc05da3c0bcdcf400d6f30425d6dec56c57b5fd5 Mon Sep 17 00:00:00 2001 From: herman ten brugge Date: Mon, 6 Jul 2020 20:10:56 +0200 Subject: [PATCH] Fix alloca and arm problems alloca is only defined for i386 and x86_64 arm has __aeabi_ prefixes for mem... calls --- tccgen.c | 2 ++ tccpp.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/tccgen.c b/tccgen.c index 5e4ffe19..77a71eeb 100644 --- a/tccgen.c +++ b/tccgen.c @@ -1919,8 +1919,10 @@ ST_FUNC void gbound_args(int nb_args) gfunc_call(1); func_bound_add_epilog = 1; } +#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64 if (v == TOK_alloca) func_bound_add_epilog = 1; +#endif } } diff --git a/tccpp.c b/tccpp.c index fd32cdca..9e2462d6 100644 --- a/tccpp.c +++ b/tccpp.c @@ -3706,6 +3706,13 @@ static void tcc_predefs(CString *cstr) "__MAYBE_REDIR(void,free,(void*))\n" #if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64 "__BOTH(void*,alloca,(__SIZE_TYPE__))\n" +#endif +#if defined(TCC_TARGET_ARM) && defined(TCC_ARM_EABI) + "__BOUND(void*,__aeabi_memcpy,(void*,const void*,__SIZE_TYPE__))\n" + "__BOUND(void*,__aeabi_memmove,(void*,const void*,__SIZE_TYPE__))\n" + "__BOUND(void*,__aeabi_memmove4,(void*,const void*,__SIZE_TYPE__))\n" + "__BOUND(void*,__aeabi_memmove8,(void*,const void*,__SIZE_TYPE__))\n" + "__BOUND(void*,__aeabi_memset,(void*,int,__SIZE_TYPE__))\n" #endif "__BUILTIN(void,abort,(void))\n" "__BOUND(int,longjmp,())\n"