http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888



Richard Biener <rguenth at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

             Status|ASSIGNED                    |NEW

         AssignedTo|rguenth at gcc dot gnu.org  |unassigned at gcc dot

                   |                            |gnu.org



--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> 2013-04-11 
11:29:39 UTC ---

-fno-builtin-XXX does not prevent GCC from emitting calls to XXX.  It only

makes GCC not assume anything about existing calls to XXX.



For example to avoid transforming printf to puts in



extern int printf(const char *, ...);

int main()

{

  printf ("Hello World\n");

  return 0;

}



it does not work to specify -fno-builtin-puts, but instead you need to

provide -fno-builtin-printf.



Note that -fno-builtin only prevents the C family parsers from recognizing

XXX as builtin decls.  The fact that -fno-builtin was specified or not

cannot be queried in any way from the middle-end.



I consider the inability to specify this to the GCC middle-end as bug

but I am not going to work on it.  The requirement to be able to

generate calls to memset. memcpy and memmove is deep-rooted into

code-expansion as well for aggregate init and assignment.

Reply via email to