Test libmudflap.c/fail27-frag.c has failed an output pattern test on powerpc64-linux with -m64 since before GCC 4.0 was released. I don't know enough about mudflap to know if this is an actual bug for that target or if the test is written incorrectly.
Output for powerpc64-linux with -m32, and for i686-linux, is something like: ******* 1 mudflap violation 1 (check/write): time=1228849502.371858 ptr=0xffaf5e91 size=1 pc=0xfefeaa0 location=`fail27-frag.c:17:1 (main)' /home/janis/tools/gcc-trunk-patches/lib/libmudflap.so.0 (__mf_check+0x50) [0xfefeaa0] ./a.out(main+0xc0) [0x10000944] /home/janis/tools/gcc-trunk-patches/lib/libmudflap.so.0 (__wrap_main+0x1f8) [0xfefe2d8] 2 Nearby object 1: checked region begins 771B before and ends 771B before 3 mudflap object 0x100911e8: name=`argv[]' bounds=[0xffaf6194,0xffaf619b] size=8 area=static check=0r/0w liveness=0 alloc time=1228849502.371747 pc=0xfefe0b0 Nearby object 2: checked region begins 779B before and ends 779B before mudflap object 0x10092d88: name=`environ[]' bounds=[0xffaf619c,0xffaf62a7] size=268 area=static check=0r/0w liveness=0 alloc time=1228849502.371826 pc=0xfefe0b0 Nearby object 3: checked region begins 5B into and ends 5B into 3 mudflap dead object 0x10092fb0: name=`fail27-frag.c:9:17 (foo) buffer' bounds=[0xffaf5e8c,0xffaf5e95] size=10 area=stack check=0r/0w liveness=0 3 alloc time=1228849502.371836 pc=0xfefe0b0 3 dealloc time=1228849502.371845 pc=0xfefdb88 number of nearby objects: 3 The numbers at the left are mine to show what is matched by 1 /* { dg-output "mudflap violation 1.*" } */ 2 /* { dg-output "Nearby object.*" } */ 3 /* { dg-output "mudflap object.*buffer.*alloc.*dealloc" } */ Output for powerpc64-linux with -m64 is: ******* mudflap violation 1 (check/write): time=1228849632.611370 ptr=0xfffff8109dd size=1 pc=0x400000493dc location=`fail27-frag.c:17:1 (main)' /home/janis/tools/gcc-trunk-patches/lib64/libmudflap.so.0(__mf_check-0x2367c) [0x400000493dc] ./lmf64(main-0x10744) [0x10000b9c] /home/janis/tools/gcc-trunk-patches/lib64/libmudflap.so.0(__wrap_main-0x23df8) [0x40000048c30] Nearby object 1: checked region begins 5B into and ends 5B into mudflap dead object 0x10015a60: name=`fail27-frag.c:9:17 (foo) buffer' bounds=[0xfffff8109d8,0xfffff8109e1] size=10 area=stack check=0r/0w liveness=0 alloc time=1228849632.611335 pc=0x400000489dc dealloc time=1228849632.611347 pc=0x400000484a4 number of nearby objects: 1 Here there is only one nearby object; argv[] and environ[] are missing. The third output pattern fails because there is no earlier "mudflap object". In both cases the line with "buffer" starts with "mudflap dead object", not "mudflap object". Should the objects argv and environ be reported in the -m64 output, or is the test right in just looking for any non-dead mudflap object, and then "buffer" sometime later? Would it be correct for the test to instead look for "mudflap dead object" before "buffer"? -- Summary: test libmudflap.c/fail27-frag.c fails output pattern test for ppc64 Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libmudflap AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janis at gcc dot gnu dot org GCC target triplet: powerpc64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38462