From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23906 invoked by alias); 26 Jan 2012 00:37:14 -0000 Received: (qmail 23898 invoked by uid 22791); 26 Jan 2012 00:37:14 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00,TW_CX,TW_GC,TW_GX,TW_IB,TW_SV X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 26 Jan 2012 00:37:01 +0000 From: "marbacz at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/52004] New: bad asm generated with -O2 -finline-functions (and maybe -ftracer) Date: Thu, 26 Jan 2012 00:51:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: marbacz at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-01/txt/msg02999.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52004 Bug #: 52004 Summary: bad asm generated with -O2 -finline-functions (and maybe -ftracer) Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned@gcc.gnu.org ReportedBy: marbacz@gmail.com Created attachment 26469 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26469 Test case from GDB. Compiling attached file (from GDB 7.4) generates assembly that chokes the assembler. I'm attaching original and reduced testcases. I'm not sure whether the reduced one is still valid C but on that one you don't need -ftracer (-O2 -finline-functions is enough for the assembler to fail). gcc -O2 -finline-functions -ftracer -c linux-x86-low.c linux-x86-low.c: Assembler messages: linux-x86-low.c:2570: Error: symbol `start_i386_reg_a' is already defined linux-x86-low.c:2572: Error: symbol `end_i386_reg_a' is already defined linux-x86-low.c:2579: Error: symbol `start_i386_reg_b' is already defined linux-x86-low.c:2583: Error: symbol `end_i386_reg_b' is already defined linux-x86-low.c:2584: Error: symbol `start_i386_reg_c' is already defined linux-x86-low.c:2587: Error: symbol `end_i386_reg_c' is already defined linux-x86-low.c:2694: Error: symbol `start_i386_void_call_2_a' is already defined linux-x86-low.c:2699: Error: symbol `end_i386_void_call_2_a' is already defined linux-x86-low.c:2715: Error: symbol `start_i386_void_call_2_b' is already defined linux-x86-low.c:2718: Error: symbol `end_i386_void_call_2_b' is already defined linux-x86-low.c:2666: Error: symbol `start_i386_int_call_1_a' is already defined linux-x86-low.c:2668: Error: symbol `end_i386_int_call_1_a' is already defined linux-x86-low.c:2680: Error: symbol `start_i386_int_call_1_c' is already defined linux-x86-low.c:2683: Error: symbol `end_i386_int_call_1_c' is already defined linux-x86-low.c:2081: Error: symbol `start_amd64_void_call_2_b' is already defined linux-x86-low.c:2082: Error: symbol `end_amd64_void_call_2_b' is already defined linux-x86-low.c:2075: Error: symbol `start_amd64_void_call_2_a' is already defined linux-x86-low.c:2077: Error: symbol `end_amd64_void_call_2_a' is already defined ~ # gcc -v Using built-in specs. COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.0-svn-183541-20120125/gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.7.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-trunk/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.7.0-svn-183541-20120125 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0-svn-183541-20120125/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.0-svn-183541-20120125 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.0-svn-183541-20120125/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.7.0-svn-183541-20120125/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.7.0-svn-183541-20120125/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --with-ppl --with-cloog --disable-ppl-version-check --with-cloog-include=/usr/include/cloog-ppl --enable-lto --enable-nls --without-included-gettext --with-system-zlib --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --enable-libssp --enable-libgomp --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.7.0-svn-183541-20120125/python --enable-checking=assert,fold,gc,misc,rtlflag,runtime,tree --disable-libgcj --disable-libquadmath --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-targets=all --with-pkgversion='svn 183541-20120125' --enable-build-with-cxx Thread model: posix gcc version 4.7.0 20120125 (experimental) (svn 183541-20120125)