ipa-icf::merge TLC

Jan Hubicka hubicka@ucw.cz
Wed Feb 25 17:31:00 GMT 2015


> On 2015.02.25 at 09:38 +0100, Jan Hubicka wrote:
> > this patch reorganize sem_function::merge and sem_variable::merge.
> > I read the code in detail and found several issues that are fixed in the
> > following patch.
> 
> I gave your patch a quick spin. It breaks Chromium. Its protocol buffer
> compiler gets miscompiled:

I see (I remember running into simiarly looking ICE last time I tried Chromium).
Is there any chance you can look into what gets wrong?  I added enough of sanity checking
code so I do not see how merging itself can lead to wrong codes without ICEing,
but the patch makes considerably more merging to happen (old code had bug where it
tried to merge but didn't), so we may run into another previously latent issue.
Martin has 3 correctness ipa-icf patches in a way, so perhaps one of them ;)

Honza
> 
>  RULE Generating C++ and Python code from copresence/proto/enums.proto
> FAILED: cd ../../components; python ../tools/protoc_wrapper/protoc_wrapper.py --include "" --protobuf "../out/Release/gen/protoc_out/components/copresence/proto/enums.pb.h" -
> -proto-in-dir copresence/proto --proto-in-file "enums.proto" "--use-system-protobuf=0" -- ../out/Release/protoc --cpp_out ../out/Release/gen/protoc_out/components/copresence/
> proto --python_out ../out/Release/pyproto/components/copresence/proto
> *** Error in `../out/Release/protoc': double free or corruption (out): 0x00007ffd966468b0 ***
> ======= Backtrace: =========
> /lib/libc.so.6(+0x7265e)[0x7fe09058065e]
> /lib/libc.so.6(+0x77f1d)[0x7fe090585f1d]
> /lib/libc.so.6(+0x7874b)[0x7fe09058674b]
> ../out/Release/protoc[0x45f5e1]
> ../out/Release/protoc[0x462caf]
> ../out/Release/protoc[0x462d1c]
> ../out/Release/protoc[0x46685c]
> ../out/Release/protoc[0x4677d5]
> ../out/Release/protoc[0x4679c3]
> ../out/Release/protoc[0x467b15]
> ../out/Release/protoc[0x479d89]
> ../out/Release/protoc[0x4aa058]
> ../out/Release/protoc[0x4aa0af]
> ../out/Release/protoc[0x46b217]
> ../out/Release/protoc[0x4a4832]
> ../out/Release/protoc[0x4a86cf]
> ../out/Release/protoc[0x4a890e]
> ../out/Release/protoc[0x4a0827]
> ../out/Release/protoc[0x4678fd]
> ../out/Release/protoc[0x467b15]
> ../out/Release/protoc[0x40c926]
> ../out/Release/protoc[0x403131]
> /lib/libc.so.6(__libc_start_main+0xf0)[0x7fe09052e6d0]
> ../out/Release/protoc[0x4037f9]
> ======= Memory map: ========
> 00400000-004eb000 r-xp 00000000 00:13 36244132                           /var/tmp/chromium/src/out/Release/protoc
> 004ec000-004ef000 r--p 000eb000 00:13 36244132                           /var/tmp/chromium/src/out/Release/protoc
> 004ef000-004f0000 rw-p 000ee000 00:13 36244132                           /var/tmp/chromium/src/out/Release/protoc
> 01ab0000-01b03000 rw-p 00000000 00:00 0                                  [heap]
> 7fe09027f000-7fe09030d000 r-xp 00000000 00:0f 2540736                    /lib64/libm-2.21.90.so
> 7fe09030d000-7fe09050c000 ---p 0008e000 00:0f 2540736                    /lib64/libm-2.21.90.so
> 7fe09050c000-7fe09050d000 r--p 0008d000 00:0f 2540736                    /lib64/libm-2.21.90.so
> 7fe09050d000-7fe09050e000 rw-p 0008e000 00:0f 2540736                    /lib64/libm-2.21.90.so
> 7fe09050e000-7fe09066e000 r-xp 00000000 00:0f 2541268                    /lib64/libc-2.21.90.so
> 7fe09066e000-7fe09086d000 ---p 00160000 00:0f 2541268                    /lib64/libc-2.21.90.so
> 7fe09086d000-7fe090871000 r--p 0015f000 00:0f 2541268                    /lib64/libc-2.21.90.so
> 7fe090871000-7fe090873000 rw-p 00163000 00:0f 2541268                    /lib64/libc-2.21.90.so
> 7fe090873000-7fe090877000 rw-p 00000000 00:00 0 
> 7fe090877000-7fe09088f000 r-xp 00000000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
> 7fe09088f000-7fe090a8e000 ---p 00018000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
> 7fe090a8e000-7fe090a8f000 r--p 00017000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
> 7fe090a8f000-7fe090a90000 rw-p 00018000 00:0f 2541131                    /lib64/libpthread-2.21.90.so
> 7fe090a90000-7fe090a94000 rw-p 00000000 00:00 0 
> 7fe090a94000-7fe090ab6000 r-xp 00000000 00:0f 2541267                    /lib64/ld-2.21.90.so
> 7fe090ad2000-7fe090ad7000 rw-p 00000000 00:00 0 
> 7fe090ad7000-7fe090aee000 r-xp 00000000 00:0f 72800                      /lib64/libgcc_s.so.1
> 7fe090aee000-7fe090aef000 rw-p 00016000 00:0f 72800                      /lib64/libgcc_s.so.1
> 7fe090aef000-7fe090af0000 rw-p 00000000 00:00 0 
> 7fe090af0000-7fe090c7b000 r-xp 00000000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
> 7fe090c7b000-7fe090c7c000 ---p 0018b000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
> 7fe090c7c000-7fe090c86000 r--p 0018b000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
> 7fe090c86000-7fe090c8a000 rw-p 00195000 00:0f 3018239                    /usr/lib64/gcc/x86_64-pc-linux-gnu/5.0.0/libstdc++.so.6.0.21
> 7fe090c8a000-7fe090c8d000 rw-p 00000000 00:00 0 
> 7fe090cb3000-7fe090cb5000 rw-p 00000000 00:00 0 
> 7fe090cb5000-7fe090cb6000 r--p 00021000 00:0f 2541267                    /lib64/ld-2.21.90.so
> 7fe090cb6000-7fe090cb7000 rw-p 00022000 00:0f 2541267                    /lib64/ld-2.21.90.so
> 7fe090cb7000-7fe090cb8000 rw-p 00000000 00:00 0 
> 7ffd96628000-7ffd96649000 rw-p 00000000 00:00 0                          [stack]
> 7ffd967e4000-7ffd967e6000 r--p 00000000 00:00 0                          [vvar]
> 7ffd967e6000-7ffd967e8000 r-xp 00000000 00:00 0                          [vdso]
> ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
> 
> -- 
> Markus



More information about the Gcc-patches mailing list