------- Comment #9 from jakub at gcc dot gnu dot org 2009-01-30 17:23 ------- Ah, I thought special_function_p would strip off __builtin_ prefix from tname, but apparently it doesn't. I'd say it should, something like:
--- gcc/calls.c2009-01-28 12:57:50.000000000 +0100 +++ gcc/calls.c2009-01-30 18:22:26.000000000 +0100 @@ -498,10 +498,14 @@ special_function_p (const_tree fndecl, i && ! 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; -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38977