http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54702
--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-09-25 13:16:22 UTC --- (In reply to comment #4) > (In reply to comment #3) > > Created attachment 28266 [details] > > patch > > > > builtins should simply not be in the assembler name hash (that fixes the > > issue). > > That of course makes things more inconsistent even from the middle-end side, > > but the asm hash forcefully computes assembler names (suspect for alloca, > > too). > > > > Let's hope the rest of the middle-end doesn't care either way (and we don't > > end up streaming loads of duplicate cgraph nodes for builtins). > > Guess Bug 54625 is dup of this issue. Yes. Adding your testcases. > With your patch I'm getting: > > /var/tmp/gcc_build_dir/./gcc/xgcc -B/var/tmp/gcc_build_dir/./gcc/ > -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem > /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include > -DHAVE_CONFIG_H -I. -I/home/markus/gcc/libmudflap -Wall -ffunction-sections > -fdata-sections -march=native -O3 -pipe -MT mf-hooks1.lo -MD -MP -MF > .deps/mf-hooks1.Tpo -c /home/markus/gcc/libmudflap/mf-hooks1.c -fPIC -DPIC -o > .libs/mf-hooks1.o > In file included from /home/markus/gcc/libmudflap/mf-hooks1.c:59:0: > /home/markus/gcc/libmudflap/mf-hooks1.c: In function ‘calloc’: > /home/markus/gcc/libmudflap/mf-impl.h:346:15: warning: typedef > ‘__mf_fn_memset’ > locally defined but not used [-Wunused-local-typedefs] > typedef ty (*__mf_fn_ ## fname) (__VA_ARGS__); \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:139:3: note: in expansion of macro > 'DECLARE' > DECLARE(void *, memset, void *, int, size_t); > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c: At top level: > /home/markus/gcc/libmudflap/mf-impl.h:340:5: error: ‘__wrap_malloc’ aliased to > undefined symbol ‘malloc’ > ret __wrap_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:98:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, malloc, size_t c) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:342:5: error: ‘__real_alloca’ aliased to > undefined symbol ‘alloca’ > ret __real_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:551:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, alloca, size_t c) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:340:5: error: ‘__wrap_alloca’ aliased to > undefined symbol ‘alloca’ > ret __wrap_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:551:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, alloca, size_t c) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:342:5: error: ‘__real_free’ aliased to > undefined symbol ‘free’ > ret __real_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:233:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void, free, void *buf) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:340:5: error: ‘__wrap_free’ aliased to > undefined symbol ‘free’ > ret __wrap_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:233:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void, free, void *buf) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:342:5: error: ‘__real_realloc’ aliased > to > undefined symbol ‘realloc’ > ret __real_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:176:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, realloc, void *buf, size_t c) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:340:5: error: ‘__wrap_realloc’ aliased > to > undefined symbol ‘realloc’ > ret __wrap_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:176:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, realloc, void *buf, size_t c) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:342:5: error: ‘__real_calloc’ aliased to > undefined symbol ‘calloc’ > ret __real_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:134:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, calloc, size_t c, size_t n) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:340:5: error: ‘__wrap_calloc’ aliased to > undefined symbol ‘calloc’ > ret __wrap_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:134:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, calloc, size_t c, size_t n) > ^ > /home/markus/gcc/libmudflap/mf-impl.h:342:5: error: ‘__real_malloc’ aliased to > undefined symbol ‘malloc’ > ret __real_ ## fname (__VA_ARGS__) \ > ^ > /home/markus/gcc/libmudflap/mf-hooks1.c:98:1: note: in expansion of macro > 'WRAPPER' > WRAPPER(void *, malloc, size_t c) > ^ Hm, ok. So back to trying not to merge them only.