[Bug c/56572] New: GCC generates non-optimal transactional code when inlining nested transaction.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56572 Bug #: 56572 Summary: GCC generates non-optimal transactional code when inlining nested transaction. Classification: Unclassified Product: gcc Version: trans-mem Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: srdjan.sti...@gmail.com GCC generates non-optimal transactional code when inlining function that has transactional code. This affects gcc-4.7 and gcc-4.8 (gcc version 4.8.0 20130222 (experimental)). // example int a; static inline void f() { __transaction_atomic { ++a; } } void g() { __transaction_atomic { f(); } } void h() { __transaction_atomic { __transaction_atomic { ++a; } } } Generated code: g(): subq$8, %rsp movl$41, %edi xorl%eax, %eax call_ITM_beginTransaction movl$41, %edi xorl%eax, %eax call_ITM_beginTransaction movl$a, %edi call_ITM_RfWU4 leal1(%rax), %esi movl$a, %edi call_ITM_WaWU4 call_ITM_commitTransaction call_ITM_commitTransaction addq$8, %rsp ret h(): subq$8, %rsp movl$41, %edi xorl%eax, %eax call_ITM_beginTransaction movl$a, %edi call_ITM_RfWU4 leal1(%rax), %esi movl$a, %edi call_ITM_WaWU4 call_ITM_commitTransaction addq$8, %rsp ret The bug: The functions g() and h() should have the __same__ asm. The problem is that GCC doesn't remove __nested__ _ITM_beginTransaction()/_ITM_commitTransaction that are known at compile time. Compiled with: gcc-4.7 -v -O2 -fgnu-tm -c example.c Using built-in specs. COLLECT_GCC=gcc Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-5ubuntu1) COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread' /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT example.c -quiet -dumpbase example.c -mtune=generic -march=x86-64 -auxbase example -O2 -version -fgnu-tm -fstack-protector -o /tmp/ccKJdU1H.s GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu ignoring nonexistent directory /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.7/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed /usr/include/x86_64-linux-gnu /usr/include End of search list. GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: fbb4af59dce4dce949ee30395742b8d0 COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread' as -v --64 -o example.o /tmp/ccKJdU1H.s GNU assembler version 2.22.90 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.22.90.20120924 COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread'
[Bug c/56573] New: GCC generates non-optimal transactional code when inlining nested transaction.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56573 Bug #: 56573 Summary: GCC generates non-optimal transactional code when inlining nested transaction. Classification: Unclassified Product: gcc Version: trans-mem Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: srdjan.sti...@gmail.com Created attachment 29621 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29621 Minimal test case. GCC generates non-optimal transactional code when inlining function that has transactional code. This affects gcc-4.7 and gcc-4.8 (gcc version 4.8.0 20130222 (experimental)). // example int a; static inline void f() { __transaction_atomic { ++a; } } void g() { __transaction_atomic { f(); } } void h() { __transaction_atomic { __transaction_atomic { ++a; } } } Generated code: g(): subq$8, %rsp movl$41, %edi xorl%eax, %eax call_ITM_beginTransaction movl$41, %edi xorl%eax, %eax call_ITM_beginTransaction movl$a, %edi call_ITM_RfWU4 leal1(%rax), %esi movl$a, %edi call_ITM_WaWU4 call_ITM_commitTransaction call_ITM_commitTransaction addq$8, %rsp ret h(): subq$8, %rsp movl$41, %edi xorl%eax, %eax call_ITM_beginTransaction movl$a, %edi call_ITM_RfWU4 leal1(%rax), %esi movl$a, %edi call_ITM_WaWU4 call_ITM_commitTransaction addq$8, %rsp ret The bug: The functions g() and h() should have the __same__ asm. The problem is that GCC doesn't remove __nested__ _ITM_beginTransaction()/_ITM_commitTransaction that are known at compile time. Compiled with: gcc-4.7 -v -O2 -fgnu-tm -c example.c Using built-in specs. COLLECT_GCC=gcc Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-5ubuntu1) COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread' /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT example.c -quiet -dumpbase example.c -mtune=generic -march=x86-64 -auxbase example -O2 -version -fgnu-tm -fstack-protector -o /tmp/ccKJdU1H.s GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu ignoring nonexistent directory /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.7/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed /usr/include/x86_64-linux-gnu /usr/include End of search list. GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: fbb4af59dce4dce949ee30395742b8d0 COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread' as -v --64 -o example.o /tmp/ccKJdU1H.s GNU assembler version 2.22.90 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.22.90.20120924 COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-O2' '-fgnu-tm' '-c'
[Bug c/56140] New: GCC inlines incorrect function in __transaction_relaxed
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56140 Bug #: 56140 Summary: GCC inlines incorrect function in __transaction_relaxed Classification: Unclassified Product: gcc Version: trans-mem Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: srdjan.sti...@gmail.com Created attachment 29301 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29301 Test case. BUG: GCC inlines tm_clone function in serial irrevocable transaction. This is incorrect and causes the slowdown of irrevocable transactions. The correct behavior it to inline non-instrumented function. The bug is present in 4.7.2 and 4.8 (gcc version 4.8.0 20130129) when compiling with -O1, -O2, -O3. // examle.c int a; __attribute__((noinline)) void g() { asm(); } __attribute__((noinline)) void f1() { a++; } inline void f2() { a++; } int main() { __transaction_relaxed { g(); // start transaction in irrevocable mode f1(); f2(); // BUG: compiler inlines tm_clone of f2() // BUG FIX: compiler should inline original f2() } return 0; } Generated code: g(): ret f1(): addl$1, a(%rip) ret f2(): addl$1, a(%rip) ret main: subq$8, %rsp movl$74, %edi xorl%eax, %eax call_ITM_beginTransaction callg() callf1() movl$a, %edi call_ITM_RfWU4 leal1(%rax), %esi movl$a, %edi call_ITM_WaWU4 call_ITM_commitTransaction xorl%eax, %eax addq$8, %rsp ret a: .zero4 Compiled with: ~# gcc-4.7 -v -O1 example.c -fgnu-tm -c Using built-in specs. COLLECT_GCC=gcc-4.7 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-5ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-5ubuntu1) COLLECT_GCC_OPTIONS='-v' '-O1' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread' /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT example.c -quiet -dumpbase example.c -mtune=generic -march=x86-64 -auxbase example -O1 -version -fgnu-tm -fstack-protector -o /tmp/ccC3mWQQ.s GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu ignoring nonexistent directory /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.7/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed /usr/include/x86_64-linux-gnu /usr/include End of search list. GNU C (Ubuntu/Linaro 4.7.2-5ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: fbb4af59dce4dce949ee30395742b8d0 COLLECT_GCC_OPTIONS='-v' '-O1' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread' as -v --64 -o example.o /tmp/ccC3mWQQ.s GNU assembler version 2.22.90 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.22.90.20120924 COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-O1' '-fgnu-tm' '-c' '-mtune=generic' '-march=x86-64' '-pthread'
[Bug c/56108] New: Asm statement in transaction_relaxed crashes compiler.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56108 Bug #: 56108 Summary: Asm statement in transaction_relaxed crashes compiler. Classification: Unclassified Product: gcc Version: trans-mem Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: srdjan.sti...@gmail.com Created attachment 29273 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29273 Minimal test case. Asm statement in transaction_relaxed crashes compiler. Example: // file: min.c int main() { __transaction_relaxed{ asm(); } return 0; } Compiler error: ~# gcc -fgnu-tm min.c -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) COLLECT_GCC_OPTIONS='-fgnu-tm' '-v' '-mtune=generic' '-march=x86-64' '-pthread' /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT min.c -quiet -dumpbase min.c -mtune=generic -march=x86-64 -auxbase min -version -fgnu-tm -fstack-protector -o /tmp/cckJBrnc.s GNU C (Ubuntu/Linaro 4.7.2-2ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu ignoring nonexistent directory /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.7/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed /usr/include/x86_64-linux-gnu /usr/include End of search list. GNU C (Ubuntu/Linaro 4.7.2-2ubuntu1) version 4.7.2 (x86_64-linux-gnu) compiled by GNU C version 4.7.2, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: efa32fef7aa241fa03ac6d7ad2a4a2cf min.c: In function ‘main’: min.c:1:5: internal compiler error: in expand_block_tm, at trans-mem.c:2375 Please submit a full bug report, with preprocessed source if appropriate. See file:///usr/share/doc/gcc-4.7/README.Bugs for instructions. Preprocessed source stored into /tmp/ccPdFHFN.out file, please attach this to your bugreport.
[Bug c/54646] New: gcc-4.7 crashes during compilation
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54646 Bug #: 54646 Summary: gcc-4.7 crashes during compilation Classification: Unclassified Product: gcc Version: trans-mem Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: srdjan.sti...@gmail.com Created attachment 28239 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28239 compiler generated file (copy of the input program) gcc-4.7 crashes during compilation of the following program: int a; int main() { int i; for (i = 0; i 1; ++i) { __transaction_atomic { ++a; } } return 0; } Machine: uname -a Linux srdjan-Latitude-E6410 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:52:48 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux Program is compiled with: gcc-4.7 -save-temps -v -O3 -fgnu-tm gccbug.c Using built-in specs. COLLECT_GCC=gcc-4.7 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.0-7ubuntu3' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --disable-bootstrap --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.7.0 (Ubuntu/Linaro 4.7.0-7ubuntu3) COLLECT_GCC_OPTIONS='-save-temps' '-v' '-O3' '-fgnu-tm' '-mtune=generic' '-march=x86-64' '-pthread' /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -E -quiet -v -imultiarch x86_64-linux-gnu -D_REENTRANT gccbug.c -mtune=generic -march=x86-64 -fgnu-tm -O3 -fpch-preprocess -fstack-protector -o gccbug.i ignoring nonexistent directory /usr/local/include/x86_64-linux-gnu ignoring nonexistent directory /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../x86_64-linux-gnu/include #include ... search starts here: #include ... search starts here: /usr/lib/gcc/x86_64-linux-gnu/4.7/include /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.7/include-fixed /usr/include/x86_64-linux-gnu /usr/include End of search list. COLLECT_GCC_OPTIONS='-save-temps' '-v' '-O3' '-fgnu-tm' '-mtune=generic' '-march=x86-64' '-pthread' /usr/lib/gcc/x86_64-linux-gnu/4.7/cc1 -fpreprocessed gccbug.i -quiet -dumpbase gccbug.c -mtune=generic -march=x86-64 -auxbase gccbug -O3 -version -fgnu-tm -fstack-protector -o gccbug.s GNU C (Ubuntu/Linaro 4.7.0-7ubuntu3) version 4.7.0 (x86_64-linux-gnu) compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU C (Ubuntu/Linaro 4.7.0-7ubuntu3) version 4.7.0 (x86_64-linux-gnu) compiled by GNU C version 4.6.3, GMP version 5.0.2, MPFR version 3.1.0-p3, MPC version 0.9 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 354a288ebaaed8d49a2cf74c30c06d62 gccbug.c: In function ‘main’: gccbug.c:3:5: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See file:///usr/share/doc/gcc-4.7/README.Bugs for instructions. Preprocessed source stored into /tmp/cczqotdH.out file, please attach this to your bugreport.