diff options
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index e6e882f24b1..9dcf66298ca 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -498,10 +498,14 @@ special_function_p (const_tree fndecl, int flags) && ! strcmp (name, "__builtin_alloca")))) flags |= ECF_MAY_BE_ALLOCA; - /* Disregard prefix _, __ or __x. */ + /* Disregard prefix _, __, __x or __builtin_. */ if (name[0] == '_') { - if (name[1] == '_' && name[2] == 'x') + if (name[1] == '_' + && name[2] == 'b' + && !strncmp (name + 3, "uiltin_", 7)) + tname += 10; + else if (name[1] == '_' && name[2] == 'x') tname += 3; else if (name[1] == '_') tname += 2; |