GCC 4.4.2 Released
The GNU Compiler Collection version 4.4.2 has been released. GCC 4.4.2 is a bug-fix release containing fixes for regressions and serious bugs in GCC 4.4.1. This release is available from the FTP servers listed at: http://www.gnu.org/order/ftp.html Please do not contact me directly regarding questions or comments about this release. Instead, use the resources available from http://gcc.gnu.org. As always, a vast number of people contributed to this GCC release -- far too many to thank individually!
Re: i370 port - constructing compile script
.../configure --target=i370-mvs --prefix=... --with-sysroot=... \ --enable-languages=c where prefix points to the directory where the cross-compiler should be installed, and sysroot points to the directory where the MVS libraries and header are installed. Ok, I used ../configure --target=i370-mvspdp --prefix=/devel/mvscross --with-sysroot=/devel/mvshead --enable-languages=c plus make and make install then I went to mvscross/bin and renamed i370-mvspdp-gcc to i370-mvspdp-xxx and replaced it with a script that does: i370-mvspdp-xxx -S $* For step 3 (cross-building a native compiler), you'd need something along the lines of .../configure --build=i686-linux --host=i370-mvs --target=i370-mvs \ --prefix=... --with-build-sysroot=... --enable-languages=c ./configure --build-i686-linux --host=i370-mvspdp --target=i370-mvspdp --prefix=/devel/mvshost --with-build-sysroot=/devel/mvshead --enable-languages=c I wasn't sure if that --with-build-sysroot was right - pointing to the same headers, but couldn't think of anything else to do with it! This configure run will then use the i370-mvs-gcc cross-compiler you built in step 2 in order to detect MVS host properties. Ok, it (3.4.6 I am using) got as far as: checking size of void *... configure: error: cannot determine a size of void * make: *** [configure-gcc] Error 1 I haven't had a chance to investigate what it's trying to do there, to see if I can devise a workaround. I know that it seems to try to compile with -g all the time which gives a warning about it not being supported, but I don't think warnings produce bad return codes like that. BFN. Paul.
char drawstrings[DRAW_MAX][] = { .. give error
Hi, I compile an old code which use this and i think its compile with Gcc 2.95 and the PPC GCC 1998 or 1999 it fail to compile with newer compiler. #define DRAW_MAX4 char drawstrings[DRAW_MAX][] = { Number of points drawn using 3D hardware:, Number of lines drawn using 3D hardware:, Number of triangles drawn using 3D hardware:, Number of quads drawn using 3D hardware:}; give error on GCC3.4.0 98 E:\amiga\AmiDevCpp\bernd\StormMesaNew\src\AMIGA\src\ADisp_HW.h elements of array `drawstrings' have incomplete type gcc4.5.0 report this. 6 E:\amiga\AmiDevCpp\bernd\StormMesaNew\src\AMIGA\src\ADisp_HW.h:98 array type has incomplete element type Is this a GGC Bug, or is that syntax no longer support ?. I change code to this, thats more easy and it compile ok but must check if its same. const char * drawstrings[] = { Number of points drawn using 3D hardware:, Number of lines drawn using 3D hardware:, Number of triangles drawn using 3D hardware:, Number of quads drawn using 3D hardware: }; Bye
Re: i370 port - constructing compile script
Paul Edwards wrote: Ok, I used ../configure --target=i370-mvspdp --prefix=/devel/mvscross --with-sysroot=/devel/mvshead --enable-languages=c plus make and make install then I went to mvscross/bin and renamed i370-mvspdp-gcc to i370-mvspdp-xxx and replaced it with a script that does: i370-mvspdp-xxx -S $* Maybe a more generic way to work around the missing assembler and linker would be to provide dummy scripts i370-mvspdp-as and i370-mvspdp-ld, where the assembler would simply copy the assembler source input as text to the object file output, and the linker would collect all input files into a tar file (or some other archive) as executable output ... This would allow usual build processes (including make) to proceed as expected. For step 3 (cross-building a native compiler), you'd need something along the lines of .../configure --build=i686-linux --host=i370-mvs --target=i370-mvs \ --prefix=... --with-build-sysroot=... --enable-languages=c ./configure --build-i686-linux --host=i370-mvspdp --target=i370-mvspdp --prefix=/devel/mvshost --with-build-sysroot=/devel/mvshead --enable-languages=c I wasn't sure if that --with-build-sysroot was right - pointing to the same headers, but couldn't think of anything else to do with it! That should be fine. (The --with-build-sysroot option may actually not be required at all when building just a C compiler.) Ok, it (3.4.6 I am using) got as far as: checking size of void *... configure: error: cannot determine a size of void * make: *** [configure-gcc] Error 1 I haven't had a chance to investigate what it's trying to do there, to see if I can devise a workaround. The compiler error output found in the config.log file should hopefully point to the problem ... Bye, Ulrich -- Dr. Ulrich Weigand GNU Toolchain for Linux on System z and Cell BE ulrich.weig...@de.ibm.com
Re: __attribute__((optimize)) and fast-math related oddities
tbp tbp...@gmail.com writes: Merrily trying to make a test-case showing how unmanageable it is to try to override *math* flags per function, i soon had to stop because... Please file a bug report. __attribute__((optimize())) is definitely only half-baked. Ian
Re: --enable-plugin option overloaded
Andrew Haley a...@redhat.com writes: Matthias Klose wrote: --enable-plugin is used by classpath (part of libjava) and now by GCC itself. disabling the build of the gcjwebplugin now disables plugin support in GCC as well. Please could the option for enabling GCC plugin support be renamed to something like --enable-plugins, --enable-gcc-plugin, --enable-gcc-plugins ? The only reason for not renaming the existing libjava option is that it was there first, and that it is part of an imported tree. That doesn't seem like a good enough reason to me. We should rename the libjava option --enable-web-plugin or --enable-browser-plugin . We could rename in the top leve configure/Makefile if we don't want to touch the classpath sources. Ian
Re: char drawstrings[DRAW_MAX][] = { .. give error
Bernd Roesch nospamn...@gmx.de writes: I compile an old code which use this and i think its compile with Gcc 2.95 and the PPC GCC 1998 or 1999 it fail to compile with newer compiler. #define DRAW_MAX4 char drawstrings[DRAW_MAX][] = { Number of points drawn using 3D hardware:, Number of lines drawn using 3D hardware:, Number of triangles drawn using 3D hardware:, Number of quads drawn using 3D hardware:}; give error on GCC3.4.0 98 E:\amiga\AmiDevCpp\bernd\StormMesaNew\src\AMIGA\src\ADisp_HW.h elements of array `drawstrings' have incomplete type gcc4.5.0 report this. 6 E:\amiga\AmiDevCpp\bernd\StormMesaNew\src\AMIGA\src\ADisp_HW.h:98 array type has incomplete element type Is this a GGC Bug, or is that syntax no longer support ?. I change code to this, thats more easy and it compile ok but must check if its same. const char * drawstrings[] = { Number of points drawn using 3D hardware:, Number of lines drawn using 3D hardware:, Number of triangles drawn using 3D hardware:, Number of quads drawn using 3D hardware: }; This question is not appropriate for the gcc@gcc.gnu.org mailing list. It would be appropriate for gcc-h...@gcc.gnu.org. Please take any followups to gcc-help. Thanks. Your program is not valid C, and I don't see how it could ever have been compiled by any C compiler. Changing it to something like char drawstrings[DRAW_MAX][80] would work. Ian
Re: --enable-plugin option overloaded
Ian Lance Taylor wrote: Andrew Haley a...@redhat.com writes: Matthias Klose wrote: --enable-plugin is used by classpath (part of libjava) and now by GCC itself. disabling the build of the gcjwebplugin now disables plugin support in GCC as well. Please could the option for enabling GCC plugin support be renamed to something like --enable-plugins, --enable-gcc-plugin, --enable-gcc-plugins ? The only reason for not renaming the existing libjava option is that it was there first, and that it is part of an imported tree. That doesn't seem like a good enough reason to me. We should rename the libjava option --enable-web-plugin or --enable-browser-plugin . We could rename in the top leve configure/Makefile if we don't want to touch the classpath sources. That sounds like a nice solution. Andrew.
Re: __attribute__((optimize)) and fast-math related oddities
On Mon, Oct 19, 2009 at 10:34 AM, Ian Lance Taylor i...@google.com wrote: tbp tbp...@gmail.com writes: Merrily trying to make a test-case showing how unmanageable it is to try to override *math* flags per function, i soon had to stop because... Please file a bug report. __attribute__((optimize())) is definitely only half-baked. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37565 -- H.J.
RE: Understanding IRA
Hi Jeff and Vladimir. Jeff: I'd be interested in trying the patch if you can send it my way. Vladimir: Today I have seen reasonable improvements on progressively-trimmed-down versions of a *single* test case by applying some cost adjustments in the case when an operand wants one of our bottom registers and IRA is considering giving it an alternative register or memory. I will be experimenting with different values for these two new costs and some more test cases tomorrow. I wonder if the optimal register allocator will just end up being one that tries all the algorithms and picks the best output for a given case? When it comes to optimisation, I prefer to bend the rules if at all possible! Best regards, Ian -Original Message- From: Jeff Law [mailto:l...@redhat.com] Sent: 16 October 2009 16:45 To: Vladimir Makarov Cc: Ian Bolton; gcc@gcc.gnu.org Subject: Re: Understanding IRA On 10/16/09 08:53, Vladimir Makarov wrote: The biggest problem of GCC RA is still reload pass. It frequently changes decisions of IRA not in a good way. Agreed. Not only may reload make a bad choice, it's horribly unpredictable. Trivial changes often lead to drastically different reloading decisions which in turn drastically change the final output. One of my favorites right now is the round-robin selection of spill registers to encourage reload inheritance. While I certainly understand the reasoning behind the code, it's amazingly frustrating to watch reload choose the worst possible spill register simply because of the round-robin selection. I've got a little hack in the reload-v2 branch which queries IRA to mitigate this problem, but it's merely a short-term hack until I can make reload inheritance go away. jeff
Re: C++ Plugins
On 10/11/09 12:13 PM, Terrence Miller wrote: (Version 4.5.0) There are plugin callbacks which trigger at the end of processing types and C++ functions, but I can not find a clean way for plugin code to notice a top-level variable declaration. I'm hoping that the answer does not require the plugin shared library to bind to global symbols of the compiler (i.e. global_namespace). Why not? That's what dehydra does: it enumerates through the items in global_namespace in PLUGIN_FINISH_UNIT. --BDS
Re: Understanding IRA
Ian Bolton wrote: Hi Jeff and Vladimir. Jeff: I'd be interested in trying the patch if you can send it my way. Vladimir: Today I have seen reasonable improvements on progressively-trimmed-down versions of a *single* test case by applying some cost adjustments in the case when an operand wants one of our bottom registers and IRA is considering giving it an alternative register or memory. I will be experimenting with different values for these two new costs and some more test cases tomorrow. I wonder if the optimal register allocator will just end up being one that tries all the algorithms and picks the best output for a given case? When it comes to optimisation, I prefer to bend the rules if at all possible! I did not try progressive register allocator (in which I have some doubts) but I did a lot of experiments recently (last year) with ILP based register allocators: from simple spill model (which pseudos should be spilled) to RA with coalescing, live range splitting, rematerialization, and code selection (it needs models on hard reg levels) including some models closed to Apel's and two Wilken's approaches. The simplest model can be only used to solve medium-size functions in reasonable time (about 10 minutes). But even this model can not be used for function like reload.c::find_reloads. More complex model problems can not be solved even for many tiny benchmarks (like heapsort) in reasonable time. Although I used GLPK which is much slower than the best package (CPLEX). Other algorithms for soliving ILP (like Balas' one) are even much worse. The improvement for the simplest model was not significant unless profiling was used (in this case some SPECInt2000 benchmarks were improved upto 20% on x86). In any case, I did not find optimal RA based on ILP is practical. About 4 years ago, I tried QAP (quadratic assignment problem) model approaches with the same conclusion. Although I did not try multi commodity flow network approach for which there are better specialized algorithms because there are no good GPL-based packages for this (unfortunately the best one MCF has no such license). It could be an interesting research.
Re: C++ Plugins
response at end Benjamin Smedberg wrote: On 10/11/09 12:13 PM, Terrence Miller wrote: (Version 4.5.0) There are plugin callbacks which trigger at the end of processing types and C++ functions, but I can not find a clean way for plugin code to notice a top-level variable declaration. I'm hoping that the answer does not require the plugin shared library to bind to global symbols of the compiler (i.e. global_namespace). Why not? That's what dehydra does: it enumerates through the items in global_namespace in PLUGIN_FINISH_UNIT. --BDS Because it makes the name global_namespace and the list order(TREE_CHAIN (t) points to a declaration located earlier in the file than t) be part of the plugin interface and these two items are not documented. Also you end up with one way of handling top-level types (PLUGIN_FINISH_TYPE) and functions (PLUGIN_CXX_CP_PRE_GENERICIZE) and a different way of handling variables. A better scheme (IMO) would be to have a plugin triggered when the declaration of a variable is complete and another pair of plugins for scope entry/exit. Terrence
Improving code with no offset addressing
Hi there. The architecture I'm working on porting gcc to has indirect addressing but no constant offset or register offset versions. Code like this: void fill(int* p) { p[0] = 0; p[1] = 0; p[2] = 0; p[3] = 0; Turns into: X = p *X = 0 X = X + 4 *X = 0 X = p X = X + 8 *X = 0 X = p X = X + 12 *X = 0 at both -O and -O2. Note that the first step recognises that X contains p and correctly increases it instead of rebuilding it. I'd like to generate the following code instead: X = p *X = 0 X = X + 4 *X = 0 X = X + 4 *X = 0 X = p X = X + 4 *X = 0 What is the best way to approach this? It seems to be common across ports (see the note on ia64 and ARM Thumb below). Is there a cost function I can change? Will changing LEGITIMIZE_ADDRESS fix it? Is there some type of value tracking that could be turned on/added? I've checked the ia64, which also only has indirect addressing, and ARM Thumb which has limited offsets. ia64 generates the same reload base/add offset as mine: mov r14 = r32 ;; st4 [r14] = r0, 4 ;; st4 [r14] = r0 adds r14 = 8, r32 ;; st4 [r14] = r0 adds r14 = 12, r32 ;; st4 [r14] = r0 adds r14 = 16, r32 ARM Thumb does the same when the offset is large (p[70] and p[71] in this case): str r3, [r0] ; p[0] str r3, [r0, #4] ; p[1] str r3, [r0, #8] ; p[2] str r3, [r0, #12] ; p[3] mov r2, #140 mov r3, #0 lsl r2, r2, #1 str r3, [r0, r2] ; p[70] mov r2, #142 lsl r2, r2, #1 str r3, [r0, r2] ; p[71] Thanks for any pointers, -- Michael
Re: When did arc-elf last build?
Joern Rennecke wrote: Quoting Joel Sherrill joel.sherr...@oarcorp.com: Hi, I got a random unsolicited email about arc-elf since I pop up in google a lot asking cross compiler questions. I decided to try to build it and as PR41747 indicates 4.3.4, 4.4.1, and the head all fail building libgcc2.c in the same way. T I did a search for arc-elf in the test results mail list archives and found none. The arc-elf port in mainline gcc is for the architecture used by the ARCtangent-A4 and older cores, which has been superseded by the ARCompact architecture. The first article that a Google search turned up suggests that this was in 2001: http://www.design-reuse.com/news/632/arc-16-32-bit-instruction-architecture-memory-requirements-up-30-per-cent.html See also PR target/39303 . I went back to gcc 4.2.4, 4.1.2, and 3.4.6. This target failed at exactly the same point. So it works on a branch but there is no maintainer. Merging the working code onto the truck would be better than letting it bitrot, wouldn't it? The code on the trunk is unbuildable and has been for a long time. I'm not an arc user but wonder if it is better to have functional code on the trunk without a maintainer since it is available than non-functional code on the trunk without a maintainer. :) If merged, I will at least volunteer to build it once and run the tests if a free simulator is available. -- Joel Sherrill, Ph.D. Director of Research Development joel.sherr...@oarcorp.comOn-Line Applications Research Ask me about RTEMS: a free RTOS Huntsville AL 35805 Support Available (256) 722-9985
Re: __attribute__((optimize)) and fast-math related oddities
On Mon, Oct 19, 2009 at 7:34 PM, Ian Lance Taylor i...@google.com wrote: Please file a bug report. __attribute__((optimize())) is definitely only half-baked. Apparently the code i've posted is just a variation around that 1 year old PR 37565 and if that doesn't work, worrying about the rest is entirely futile. Half baked you say? It's comforting to see that much optimism but couldn't the doc be adjusted a bit to reflect the fact that the baker got hit by a bus or something? PS: i'm sorry that i've missed that PR in my search, but i presumed the issue was much more specific.
[MIPS] cannot split restore_gp
Hi, G++ could not split restore_gp. Please check this test (from #line 15017 configure of gcc/libstdc++-v3/). # cat foo.cpp struct S { ~S(); }; void bar(); void foo() { S s; bar(); } # ~/dev/gcc45/build/gcc/cc1plus -quiet foo.cpp -o foo.s -mno-shared -mplt -mabicalls -G0 foo.cpp: In function â?~foo()â?T: foo.cpp:7:1: error: could not split insn (insn 29 28 30 (parallel [ (set (reg:SI 28 $28) (unspec_volatile:SI [ (const_int 0 [0x0]) ] 7)) (clobber (reg:SI 2 $2)) ]) 555 {restore_gp} (nil)) foo.cpp:7:1: internal compiler error: in final_scan_insn, at final.c:2651 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. -- Something may be wrong before we reach the final pass. (Or, we should have split restore_gp earlier.) Any idea? Thanks! Regards, Chao-ying
Need help in understanding code generated for C++ exception handling
Hi, I have compiled and generated a C++ shared library with the -fPIC option. But this shared library requires text relocation during runtime and is not usable on seLinux which disables writeable text segments. The text relocation is due to use of exceptions inside the shared library. There is a segment .gcc_except_table created in the shared library and it contains symbols suffixed with $$LSDA :- 0013df38 _ZN6comref4runt11userdef20releasebackEPS1_$$LSDA: 13df38: ff 00 incl (%eax) 13df3a: 18 01 sbb%al,(%ecx) 13df3c: 0c 1c or $0x1c,%al 13df3e: 03 2f add(%edi),%ebp 13df40: 01 52 0aadd%edx,0xa(%edx) 13df43: 6d insl (%dx),%es:(%edi) 13df44: 00 66 1aadd%ah,0x1a(%esi) 13df47: 00 00 add%al,(%eax) 13df49: 02 00 add(%eax),%al ... 13df4b: R_386_32_ZTIN6comref4runt12genExceptionE Can someone please help in understand the issue and how to work around? Thanks, Shankar Yahoo! India has a new look. Take a sneak peek http://in.yahoo.com/trynew
[Bug ada/35194] floating point truncation error on intel platform
--- Comment #11 from k-tsubota at ap dot jp dot nec dot com 2009-10-19 06:35 --- I wonder if the bug is caused by errata of core2duo processor because the bug was only reproduced on core2duo and pentium D. (- not on UltraSPARC III) Intel Core2duo processor has errata in its FPU - Errata AI20, AI38 (*1). And, the processor has workarounds of the errata. If these workaround was not implemented in the GCC version, the bug might be caused by these errata. And, Intel Celeron M processor also has similar errata - Errata W34, W56 (*2). - (*1) Core2duo processor Specification Update - http://download.intel.com/design/processor/specupdt/313279.pdf - Errata AI20,AI38 - (*2) Celeron M processor Specification Update - http://download.intel.com/design/mobile/SPECUPDT/300303.pdf - Errata W34,W56 - -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35194
[Bug preprocessor/41748] New: Continued lines are not merged into one long line
This is a testcase (a space before a backslash or after a newline, and two pairs of quotes (or no quotes at all), are important): hello, \ world In GCC 4.5.0 20091015, preprocessor produces this: # 1 stdin # 1 built-in # 1 command-line # 1 stdin hello, world whereas older GCC versions give this: # 1 stdin # 1 built-in # 1 command-line # 1 stdin hello, world Such a new behavior seems to be in contradiction with what the documentation says: the backslash is removed and the following line is joined with the current one. -- Summary: Continued lines are not merged into one long line Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: d dot g dot gorbachev at gmail dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41748
[Bug c/41749] New: non-needed instructions are not removed (not optimized)
int main (void) {return 1; } Ubuntu Jaunty. gcc --save-temps -fno-stack-protector -fomit-frame-pointer -Os ./cpuid.c generates thgis: -- main: leal4(%esp), %ecx andl$-16, %esp pushl -4(%ecx) movl$1, %eax pushl %ecx popl%ecx leal-4(%ecx), %esp ret -- why i get this: pushl %ecx popl%ecx and other non-needed instructions (for another example) pushl %ebp andl$1, %eax movl%esp, %ebp pushl %ecx popl%ecx popl%ebp These instructions are not optimized not in -O3, nor in -Os -- Summary: non-needed instructions are not removed (not optimized) Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: socketpair at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41749
[Bug c/41749] non-needed instructions are not removed (not optimized)
--- Comment #1 from socketpair at gmail dot com 2009-10-19 07:14 --- gcc322 generates this: (gcc -Os -fomit-frame-pointer qwe.c --save-temps) main: movl$1, %eax ret WTF? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41749
[Bug c++/37204] [c++0x] reinterpret_castT(v) incorrectly yields an lvalue
--- Comment #7 from jason at gcc dot gnu dot org 2009-10-19 07:41 --- Thanks, though that's not a regression, that's the new PR37204 testcase. The execution test is testing direct binding, which is a separate issue that isn't fixed in 4.4 yet, so I've just disabled the execution test on the 4.4 branch for now. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37204
[Bug preprocessor/41748] Continued lines are not merged into one long line
--- Comment #1 from jakub at gcc dot gnu dot org 2009-10-19 08:13 --- The lines are joined into a logical line, that's what the C standard requires. But where do you see requirement that everything on one logical line has to appear on the line in preprocessed output? The reason it is emitted on the next line is to give the second string literal token proper location. The tokens are separate and a compiler compiles both foo bar and foo bar the same (as it doesn't record the line numbers for the string literals at all). See PR41445 for why this change has been made. If you care about this because you use the preprocessed output for something else, consider using -P option. That says you don't care about token locations. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41748
[Bug c/41750] New: gcc 4.50 miscompiles binutils
gcc trunk revision 152931 miscompiles cross binutils x86_64-unknown-linux-gnu to ia64-unknown-linux-gnu. Detected during build of cross compiler x86_64-unknown-linux-gnu to ia64-unknown-linux-gnu. ia64-unknown-linux-gnu-ld segfaults by linking a simple conftest. configure:2368: checking for C compiler default output file name configure:2390: /SCRATCH/tmp.rXGZe12682/gcc-4.5.0/gcc-4.5.0/./gcc/xgcc -B/SCRATCH/tmp.rXGZe12682/gcc-4.5.0/gcc-4.5.0/./gcc/ -B/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_10.3/cross/Linux/i a64-unknown-linux-gnu/SLC_4.7/gcc-4.5.0/ia64-unknown-linux-gnu/bin/ -B/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_10.3/cross/Linux/ia64-unknown-linux-gnu/SLC_4.7/gcc-4.5.0/ia64-unknown-lin ux-gnu/lib/ -isystem /opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_10.3/cross/Linux/ia64-unknown-linux-gnu/SLC_4.7/gcc-4.5.0/ia64-unknown-linux-gnu/include -isystem /opt/devel/gnu/cross-gcc/ Linux/x86_64-unknown-linux-gnu/openSUSE_10.3/cross/Linux/ia64-unknown-linux-gnu/SLC_4.7/gcc-4.5.0/ia64-unknown-linux-gnu/sys-include conftest.c 5 collect2: ld terminated with signal 11 [Segmentation fault] configure:2394: $? = 1 configure:2431: result: configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME | #define PACKAGE_TARNAME | #define PACKAGE_VERSION | #define PACKAGE_STRING | #define PACKAGE_BUGREPORT | #define PACKAGE_URL | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } verbose output: rai...@kasandra-lx:/SCRATCH/tmp.rXGZe12682/gcc-4.5.0/gcc-4.5.0/ia64-unknown-linux-gnu/libada ia64-unknown-linux-gnu-ld --verbose --sysroot=/opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7 -dynamic-linker /lib/ld-linux-ia64.so.2 /opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/usr/lib/crt1.o /opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/usr/lib/crti.o /SCRATCH/tmp.rXGZe12682/gcc-4.5.0/gcc-4.5.0/./gcc/crtbegin.o -L/SCRATCH/tmp.rXGZe12682/gcc-4.5.0/gcc-4.5.0/./gcc -L/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_10.3/cross/Linux/ia64-unknown-linux-gnu/SLC_4.7/gcc-4.5.0/ia64-unknown-linux-gnu/bin -L/opt/devel/gnu/cross-gcc/Linux/x86_64-unknown-linux-gnu/openSUSE_10.3/cross/Linux/ia64-unknown-linux-gnu/SLC_4.7/gcc-4.5.0/ia64-unknown-linux-gnu/lib -L/opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/lib -L/opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/usr/lib conftest.o -lgcc --as-needed -lgcc_s -lunwind --no-as-needed -lc -lgcc --as-needed -lgcc_s -lunwind --no-as-needed /SCRATCH/tmp.rXGZe12682/gcc-4.5.0/gcc-4.5.0/./gcc/crtend.o /opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/usr/lib/crtn.o GNU ld (GNU Binutils) 2.20 Supported emulations: elf64_ia64 using internal linker script: == /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT(elf64-ia64-little, elf64-ia64-little, elf64-ia64-little) OUTPUT_ARCH(ia64) ENTRY(_start) SEARCH_DIR(=/usr/local/lib); SEARCH_DIR(=/lib); SEARCH_DIR(=/usr/lib); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START(text-segment, 0x4000)); . = SEGMENT_START(text-segment, 0x4000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } . . . . /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } == attempt to open /opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/usr/lib/crt1.o succeeded /opt/devel/tec/setup/sys-root/Linux/ia64-unknown-linux-gnu/SLC_4.7/usr/lib/crt1.o Segmentation fault (core dumped) Backtrace: Core was generated by `ia64-unknown-linux-gnu-ld --verbose --sysroot=/opt/devel/tec/setup/sys-root/Lin'. Program terminated with signal 11, Segmentation fault. #0 0x0043f309 in elf64_ia64_check_relocs (abfd=value optimized out, info=0x6f0d00, sec=value optimized out, relocs=value optimized out) at elf64-ia64.c:1550 1550 if (s (s-flags SEC_LOAD)) (gdb) where #0 0x0043f309 in elf64_ia64_check_relocs (abfd=value optimized out, info=0x6f0d00, sec=value optimized out, relocs=value optimized out) at elf64-ia64.c:1550 #1 0x0045cfa0 in bfd_elf_link_add_symbols (abfd=value optimized out, info=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/bfd/elflink.c:477 #2 0x in ?? () (gdb) -- Summary: gcc 4.50 miscompiles binutils Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy:
[Bug fortran/41494] [4.5 Regression] temp and memcpy used when zeroing array
--- Comment #5 from rguenth at gcc dot gnu dot org 2009-10-19 08:45 --- Subject: Bug 41494 Author: rguenth Date: Mon Oct 19 08:45:43 2009 New Revision: 152973 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152973 Log: 2009-10-18 Richard Guenther rguent...@suse.de PR fortran/41494 * trans-expr.c (gfc_trans_scalar_assign): Do not call gfc_evaluate_now. Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-expr.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41494
[Bug java/41356] Circular dependencies between jars cause errors: jars order shouldn't matter
--- Comment #1 from aph at gcc dot gnu dot org 2009-10-19 08:49 --- We need a standalone test case for this. Please cut the problem down to something fairly simple and cmplete. -- aph at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41356
[Bug java/41372] Symbols in shared library compiled from jar/classes should not be local with -findirect-dispatch
--- Comment #1 from aph at gcc dot gnu dot org 2009-10-19 08:55 --- This is a deliberate design decision. If you really need to refer to classes with dlsym, use -fno-indirect-classes. However, this has a number of restrictions: in particular it fixes the ABI to the specific libgcj that was used at compile time, thus requiring recompilation every time libgcj is updated. -- aph at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41372
[Bug target/41751] New: bad code with arrays as local vars and no optimization
static void R_EdgeDrawing (qboolean Translucent) { edge_t ledges[NUMSTACKEDGES + ((CACHE_SIZE - 1) / sizeof(edge_t)) + 1]; surf_t lsurfs[NUMSTACKSURFACES + ((CACHE_SIZE - 1) / sizeof(surf_t)) + 1]; .. (see attached r_main-1.i and r_main-1.s) is incorrectly compiled when optimizations are turned off (no -O) with gcc-4.x series compilers on x86_64. -O1, -O2, -O3 and -Os are fine with gcc-4.x, whereas gcc-3.4.6 (as shipped with fedora 10) is fine with or without optimizations. If those vars are moved to the top of file as static (attached files r_main-3.i and r_main-3.s), gcc-4.x up to gcc-4.4.3 behave correctly without optimizations and the compiled program runs expectedly. gcc-3.4 is fine as before. gcc-4.5 is not tested. -- Summary: bad code with arrays as local vars and no optimization Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sezeroz at gmail dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug target/41751] bad code with arrays as local vars and no optimization
--- Comment #1 from sezeroz at gmail dot com 2009-10-19 08:59 --- Created an attachment (id=18822) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18822action=view) failing preprocessed source -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug target/41751] bad code with arrays as local vars and no optimization
--- Comment #2 from sezeroz at gmail dot com 2009-10-19 09:00 --- Created an attachment (id=18823) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18823action=view) good preprocessed source -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug target/41751] bad code with arrays as local vars and no optimization
--- Comment #3 from sezeroz at gmail dot com 2009-10-19 09:01 --- Created an attachment (id=18824) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18824action=view) failing asm output -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug target/41751] bad code with arrays as local vars and no optimization
--- Comment #4 from sezeroz at gmail dot com 2009-10-19 09:01 --- Created an attachment (id=18825) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18825action=view) good asm output -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug java/41375] Compiling native executable without -findirect-dispatch causes random SEGVs
--- Comment #3 from aph at gcc dot gnu dot org 2009-10-19 09:01 --- Works for me on GNU/Linux: ClassNotFoundException: java.lang.ClassNotFoundException: my.other.class not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}} Exception in thread main java.lang.ExceptionInInitializerError at java.lang.Class.initializeClass(libgcj.so.10) at MyProxy.main(a.out) Caused by: java.lang.NullPointerException at MyProxy.clinit(a.out) at java.lang.Class.initializeClass(libgcj.so.10) ...1 more -- aph at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||WORKSFORME http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41375
[Bug java/41745] Segmentation fault when ecj.jar is run as a binary compiled by gcj
--- Comment #1 from aph at gcc dot gnu dot org 2009-10-19 09:08 --- Works for me: $ gcj -o ecj --main=org.eclipse.jdt.internal.compiler.batch.Main /usr/share/java/ecj.jar $ ./ecj HelloWorld.java $ java HelloWorld Hello World! -- aph at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41745
[Bug java/41745] Segmentation fault when ecj.jar is run as a binary compiled by gcj
--- Comment #2 from yuri at tsoft dot com 2009-10-19 09:23 --- No, it doesn't work for me on FreeBSD-8.0: /usr/local/gcc/4.4.1-java/bin/gcj -o ecj --main=org.eclipse.jdt.internal.compiler.batch.Main /usr/local/share/java/ecj.jar LD_LIBRARY_PATH=/usr/local/gcc/4.4.1-java/lib ldd ./ecj ./ecj: libgcc_s.so.1 = /usr/local/gcc/4.4.1-java/lib/libgcc_s.so.1 (0x341ba000) libgcj.so.10 = /usr/local/gcc/4.4.1-java/lib/libgcj.so.10 (0x341c6000) libm.so.5 = /lib/libm.so.5 (0x363d9000) libthr.so.3 = /lib/libthr.so.3 (0x363f3000) librt.so.1 = /usr/lib/librt.so.1 (0x36408000) libc.so.7 = /lib/libc.so.7 (0x3640d000) LD_LIBRARY_PATH=/usr/local/gcc/4.4.1-java/lib ./ecj HelloWorld.java Segmentation fault: 11 backtrace: #0 0x364041c7 in __error () from /lib/libthr.so.3 #1 0x36403da8 in __error () from /lib/libthr.so.3 #2 0x36606820 in ?? () #3 0x0008 in ?? () #4 0x0001 in ?? () #5 0x36606800 in ?? () #6 0x in ?? () #7 0xbf9fedd4 in ?? () #8 0x363fe1a5 in pthread_rwlock_unlock () from /lib/libthr.so.3 #9 0x36401fae in pthread_cond_signal () from /lib/libthr.so.3 #10 0x34d217e8 in _Jv_CondWait (cv=0x3639778c, mu=0x36397780, millis=0, nanos=0) at ../../../gcc-4.4.1/libjava/posix-threads.cc:212 #11 0x8c34d070 in ?? () #12 0x3639778c in _ZL5mutex () from /usr/local/gcc/4.4.1-java/lib/libgcj.so.10 #13 0x36397780 in E () from /usr/local/gcc/4.4.1-java/lib/libgcj.so.10 #14 0x in ?? () #15 0x in ?? () #16 0x in ?? () #17 0x0001 in ?? () #18 0x341795a8 in dladdr () from /libexec/ld-elf.so.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41745
[Bug c++/41752] New: Canonical type with variadic templates and CRTP
CRTP does not seem to work together with variadic templates. On a larger program, type canonization seems to be faulty and leads to a g++ crash. Source code: struct a {}; template typename T, typename ENCLOSING struct base; template typename ENCLOSING struct base a, ENCLOSING {}; template typename... T struct derived : public base T, derived T... ... {}; int main() { derived a instance; base a, derived a a_instance = instance; } Output of g++ variadic-crtp.cc -std=c++0x: variadic-crtp.cc: In function 'int main()': variadic-crtp.cc:18:41: error: invalid initialization of reference of type 'basea, deriveda ' from expression of type 'deriveda' Output of g++ -v: Using built-in specs. Target: i386-apple-darwin9 Configured with: ../gcc-4.5-20091001/configure --prefix=/opt/local --build=i386-apple-darwin9 --enable-languages=c,c++,objc,obj-c++ --libdir=/opt/local/lib/gcc45 --includedir=/opt/local/include/gcc45 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.5 --with-gxx-include-dir=/opt/local/include/gcc45/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local Thread model: posix gcc version 4.5.0 20091001 (experimental) (GCC) -- Summary: Canonical type with variadic templates and CRTP Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: alban dot linard at gmail dot com GCC build triplet: i686-apple-darwin9 GCC host triplet: i686-apple-darwin9 GCC target triplet: i686-apple-darwin9 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41752
[Bug fortran/41753] New: OOP - segfault with -O2 using methods as actual arguments
The following produces a segfault at runtime with -O2 and higher module m type t real x contains procedure, pass :: a end type contains real function a (arg) class (t) :: arg a = arg%x end function real function b (arg) real :: arg b = arg*2 end function subroutine s class(t), allocatable :: z allocate(z) ! see tree-optimized output z%x = 42 ! see tree-optimized output print *, b (z%a()) ! see tree-optimized output end subroutine end module use m call s end With -O0, the marked lines give bb 2: D.1348_1 = malloc (4); if (D.1348_1 == 0B) goto bb 3; else goto bb 4; bb 3: _gfortran_os_error (Out of memory[1]{lb: 1 sz: 1}); bb 4: D.1374_2 = (struct t *) D.1348_1; z.$data = D.1374_2; z.$vindex = 2800126; z.$size = 4; D.1375_3 = z.$data; D.1375_3-x = 4.2e+1; dt_parm.0.common.filename = test.f03[1]{lb: 1 sz: 1}; dt_parm.0.common.line = 22; dt_parm.0.common.flags = 128; dt_parm.0.common.unit = 6; _gfortran_st_write (dt_parm.0); D.1376_4 = __m_MOD_a (z); D.1350 = D.1376_4; D.1377_5 = __m_MOD_b (D.1350); D.1351 = D.1377_5; _gfortran_transfer_real (dt_parm.0, D.1351, 4); _gfortran_st_write_done (dt_parm.0); whilst with -O2 bb 2: D.1348_1 = malloc (4); if (D.1348_1 == 0B) goto bb 3; else goto bb 4; bb 3: _gfortran_os_error (Out of memory[1]{lb: 1 sz: 1}); bb 4: D.1374_2 = (struct t *) D.1348_1; dt_parm.0.common.filename = test.f03[1]{lb: 1 sz: 1}; dt_parm.0.common.line = 22; dt_parm.0.common.flags = 128; dt_parm.0.common.unit = 6; _gfortran_st_write (dt_parm.0); arg_21 = (struct .class.t restrict) z; D.1389_22 = arg_21-$data; D.1386_23 = D.1389_22-x; D.1392_26 = D.1386_23 * 2.0e+0; D.1351 = D.1392_26; _gfortran_transfer_real (dt_parm.0, D.1351, 4); _gfortran_st_write_done (dt_parm.0); ie. the important part of the allocation and the entire assignment disappear! Since the PRINT then tries to access the data component of the CLASS object, the segfault results -- Summary: OOP - segfault with -O2 using methods as actual arguments Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pault at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41753
[Bug target/41751] bad code with arrays as local vars and no optimization
--- Comment #5 from jakub at gcc dot gnu dot org 2009-10-19 10:20 --- You haven't provide a small self-contained executable testcase, so you need to explain in detail what do you think is wrong on the generated assembly. I don't see anything wrong on it, especially not in the diff between r_main-1.s and r_main-3.s. Far more probable is a code bug, you are saving address of an automatic array into a global pointer, not resetting it afterwards when the function is left, so chances are you are refering to a variable later on even after it went out of scope. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug fortran/41753] OOP - segfault with -O2 using methods as actual arguments
--- Comment #1 from dominiq at lps dot ens dot fr 2009-10-19 10:23 --- Confirmed on (i686|powerpc)-apple-darwin9 revision 152966. On -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41753
[Bug fortran/41494] [4.5 Regression] temp and memcpy used when zeroing array
--- Comment #6 from rguenth at gcc dot gnu dot org 2009-10-19 10:38 --- Fixed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41494
[Bug java/41745] Segmentation fault when ecj.jar is run as a binary compiled by gcj
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-10-19 10:53 --- Sounds more like a BSD threads issue, so you need to debug it more. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added GCC host triplet||freebsd-8.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41745
[Bug bootstrap/41529] [4.5 Regression] LTO configuration should detect if the target is ELF
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-10-19 10:54 --- *** Bug 41746 has been marked as a duplicate of this bug. *** -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||mckelvey at maskull dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41529
[Bug bootstrap/41746] LTO Fails to bootstrap, stage 2
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-10-19 10:54 --- Indeed. *** This bug has been marked as a duplicate of 41529 *** -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41746
[Bug target/41747] ICEin extract_insn, at recog.c:2091
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-10-19 10:55 --- Target seems broken. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Keywords||build http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41747
[Bug middle-end/41749] non-needed instructions are not removed (not optimized)
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-10-19 10:58 --- It aligns the incoming stack. Fixed in 4.4/4.5. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Component|c |middle-end Known to fail||4.3.4 Known to work||4.4.0 Resolution||FIXED Target Milestone|--- |4.4.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41749
[Bug c/41750] gcc 4.5.0 miscompiles binutils
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-10-19 11:00 --- Testcase required. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |WAITING http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug target/41751] bad code with arrays as local vars and no optimization
--- Comment #6 from sezeroz at gmail dot com 2009-10-19 11:11 --- (In reply to comment #5) function is left, so chances are you are refering to a variable later on even after it went out of scope. By a closer look, the function is called twice, first by its argument set to true in which case it assigns the pointer, then with the argument set as false where the code seems to assume that the pointer is still valid. So, you are right, the code is buggy and I apologize for the noise. I am amazed, however, how the x86 compilations and/or optimized compilations worked flawlessly since ten years of time... Any hints? -- sezeroz at gmail dot com changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41751
[Bug c/41750] gcc 4.5.0 miscompiles binutils
--- Comment #2 from rainer at emrich-ebersheim dot de 2009-10-19 11:43 --- Subject: Re: gcc 4.5.0 miscompiles binutils -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 rguenth at gcc dot gnu dot org schrieb: --- Comment #1 from rguenth at gcc dot gnu dot org 2009-10-19 11:00 --- Testcase required. Richard, some advice how to create a testcase for this particular issue would be appreciated. -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkrcUOMACgkQoUhjsh59BL5teACfQuLfIIXop524bwIJ2XUyjAuK 8kMAoKlEtN8uv1qnV4TsHWEs9eEoVd2P =MQ4R -END PGP SIGNATURE- -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug c/41750] gcc 4.5.0 miscompiles binutils
--- Comment #3 from rainer at emrich-ebersheim dot de 2009-10-19 11:51 --- Forgot to mention that's with binutils 2.20 and binutils head. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug c/41750] gcc 4.5.0 miscompiles binutils
--- Comment #4 from jakub at gcc dot gnu dot org 2009-10-19 12:06 --- For a suspected wrong-code bug, the standard way to create a testcase is to first find out if there are gcc options with which you get the expected result (such as it works when compiled with -O0, doesn't when compiled with -O2), or, if even at -O0 new gcc misbehaves some other compiler version. Then either guess or do a binary search between objects compiled with a known good and known bad options to narrow it down to a particular source file. Then try -fno-inline on that file to see if it is still bad, if it is, it will be far easier, as no inlining is performed and thus fn boundaries are clearer. In any case either guess the miscompiled function or play with attribute optimize (known to have issues though) or splitting source file into several smaller ones to do a binary search to a particular function. Last, find out what arguments it has been called with and try to emulate that inside of a main, just preparing the right arguments (and what they point to etc.), then calling only the problematic function. And, stub all (noninlined) functions the problematic function calls, with something that gives back the right result, use noinline attribute on it and possibly asm volatile (:::memory); to prevent it being optimized. Remove any unnecessary stuff, provide it as preprocessed source, which can be run and show clearly a bad vs. good behavior (say exit 0 in the right case, abort otherwise). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame
--- Comment #21 from jakub at gcc dot gnu dot org 2009-10-19 12:15 --- Subject: Bug 40521 Author: jakub Date: Mon Oct 19 12:15:27 2009 New Revision: 152974 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152974 Log: Backport from mainline: 2009-10-16 Jakub Jelinek ja...@redhat.com PR debug/40521 * debug.h (struct gcc_debug_hooks): Add assembly_start hook. * cgraphunit.c (cgraph_optimize): Call it. * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into... (dwarf2out_assembly_start): ... here. New hook. (dwarf2out_debug_hooks): Add dwarf2out_assembly_start. * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start hook. * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. * sdbout.c (sdb_debug_hooks): Likewise. * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start. (vmsdbgout_assembly_start): New hook. 2009-10-09 Jakub Jelinek ja...@redhat.com PR debug/40521 * dwarf2out.c (dwarf2out_init): Test whether HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking it is defined. 2009-10-02 Jakub Jelinek ja...@redhat.com PR debug/40521 * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test. * configure: Regenerated. * config.in: Regenerated. * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame. (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame, emit .cfi_sections .debug_frame directive. Modified: branches/gcc-4_4-branch/gcc/ChangeLog branches/gcc-4_4-branch/gcc/cgraphunit.c branches/gcc-4_4-branch/gcc/config.in branches/gcc-4_4-branch/gcc/configure branches/gcc-4_4-branch/gcc/configure.ac branches/gcc-4_4-branch/gcc/dbxout.c branches/gcc-4_4-branch/gcc/debug.c branches/gcc-4_4-branch/gcc/debug.h branches/gcc-4_4-branch/gcc/dwarf2out.c branches/gcc-4_4-branch/gcc/sdbout.c branches/gcc-4_4-branch/gcc/vmsdbgout.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521
[Bug debug/40521] [4.4/4.5 Regression] -g causes GCC to generate .eh_frame
--- Comment #22 from jakub at gcc dot gnu dot org 2009-10-19 12:21 --- Fixed. -- jakub at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40521
[Bug preprocessor/41748] Adjust documentation to reflect new (afrer rev. 152599) cpp behavior
--- Comment #2 from d dot g dot gorbachev at gmail dot com 2009-10-19 13:17 --- Ok, thanks for the clarification. I believe this should be documented. -- d dot g dot gorbachev at gmail dot com changed: What|Removed |Added Summary|Continued lines are not |Adjust documentation to |merged into one long line |reflect new (afrer rev. ||152599) cpp behavior http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41748
[Bug c++/41754] New: initializer list internal compiler segfault
This program generates an internal compiler error: Segmentation fault. #include map #include string #include iostream using namespace std; int main() { mapstring, string m; m.insert({{t, t}, {y, y}}); return 0; } $ g++ -std=c++0x test.cpp test.cpp: In function 'int main()': test.cpp:11: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. This happens on a compiler built on cygwin from: svn://gcc.gnu.org/svn/gcc/tags/gcc_4_4_2_release and svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-bra...@152637 with ./configure --prefix=... --disable-sjlj-exceptions t...@crius ~/tmp $ /opt/gcc4.4.2/bin/gcc -v Using built-in specs. Target: i686-pc-cygwin Configured with: /home/Tom/svn/gcc4.4.2/configure --prefix=/opt/gcc4.4.2 --disab le-sjlj-exceptions Thread model: single gcc version 4.4.2 (GCC) $ /opt/gcc4.4/bin/gcc -v Using built-in specs. Target: i686-pc-cygwin Configured with: /home/Tom/svn/gcc/configure --prefix=/opt/gcc4.4 --disable-sjlj -exceptions Thread model: single gcc version 4.4.2 20091011 (prerelease) (GCC) -- Summary: initializer list internal compiler segfault Product: gcc Version: 4.4.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tom dot deseyn at gmail dot com GCC build triplet: i686-pc-cygwin GCC host triplet: i686-pc-cygwin GCC target triplet: i686-pc-cygwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41754
[Bug fortran/41755] New: Segfault on invalid code
From https://bugzilla.novell.com/show_bug.cgi?id=546031 cat without_comma.f c without comma common /uno/ aa equivalence (aa,a) (bb,cc) end gfortran without_comma.f f951: internal compiler error: Violación de segmento Please submit a full bug report, with preprocessed source if appropriate. -- Summary: Segfault on invalid code Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rguenth at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41755
[Bug fortran/41755] Segfault on invalid code
--- Comment #1 from dominiq at lps dot ens dot fr 2009-10-19 14:08 --- Gives pr41755.f90:2.28: equivalence (aa,a) (bb,cc) 1 Error: Syntax error in EQUIVALENCE statement at (1) with gfortran 4.2.4, and a bus error at compile time with 4.3.4, 4.4.1 and trunk. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41755
[Bug target/41196] The use of ARM NEON vshll_n_u8 intrinsic results in compile error on valid code [4.4 only]
--- Comment #8 from jakub at gcc dot gnu dot org 2009-10-19 14:08 --- 4.4 branch is again open for bugfixes... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41196
[Bug lto/41569] .../prev-gcc/xgcc used for the install step of the lto-plugin
--- Comment #1 from rguenth at gcc dot gnu dot org 2009-10-19 14:19 --- Confirmed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added OtherBugsDependingO||41588 nThis|| Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-19 14:19:08 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41569
[Bug target/40134] symbols not resolved when building shared libraries (link with -lgcc_s -lgcc?)
--- Comment #3 from doko at gcc dot gnu dot org 2009-10-19 14:26 --- Subject: Bug 40134 Author: doko Date: Mon Oct 19 14:26:28 2009 New Revision: 152975 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152975 Log: 2009-10-19 Matthias Klose d...@ubuntu.com PR target/40134 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc. Modified: trunk/gcc/ChangeLog trunk/gcc/config.gcc -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40134
[Bug fortran/41724] PUREness/ELEMENTAL check missing for ACTUAL/DUMMY conformance
--- Comment #1 from burnus at gcc dot gnu dot org 2009-10-19 14:31 --- Similarly for proc-pointers, cf. PR 41733. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41724
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #5 from rainer at emrich-ebersheim dot de 2009-10-19 14:46 --- works when build with -g -O0 and -g -O1. fails when build with -g -O2 and -g -O3. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug lto/41569] .../prev-gcc/xgcc used for the install step of the lto-plugin
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-10-19 15:03 --- Maybe Paolo can help here - copying the usual HACK boilerplate from libssp/Makefile.am into lto-plugin/Makefile.am doesn't help (but libgomp also does not need that). I have no idea how this is supposed to work and do not feel like digging too deep either ;) Btw, the configury and Makefile of lto-plugin seems to be spartan at least. All host libraries apart from zlib do not use automake btw, and zlib is only built statically and not installed. -- rguenth at gcc dot gnu dot org changed: What|Removed |Added CC||rguenth at gcc dot gnu dot ||org, bonzini at gnu dot org Severity|normal |major http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41569
[Bug lto/41569] .../prev-gcc/xgcc used for the install step of the lto-plugin
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-10-19 15:18 --- It also builds lto-plugin again at install time. Huh. make[2]: Nothing to be done for `install'. make[2]: Leaving directory `/usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux/gnattools' make[2]: Entering directory `/usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux/lto-plugin' /bin/sh ./libtool --tag=CC --mode=compile gcc -DPACKAGE_NAME=\LTO\ plugin\ for\ ld\ -DPACKAGE_TARNAME=\lto-plugin\ -DPACKAGE_VERSION=\0.1\ -DPACKAGE_STRING=\LTO\ plugin\ for\ ld\ 0.1\ -DPACKAGE_BUGREPORT=\\ -DPACKAGE_URL=\\ -DPACKAGE=\lto-plugin\ -DVERSION=\0.1\ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\.libs/\ -I. -I../../lto-plugin -I../../lto-plugin/../include -I/usr/include/libelf -Wall -Werror -O2 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables -g -U_FORTIFY_SOURCE -MT lto-plugin.lo -MD -MP -MF .deps/lto-plugin.Tpo -c -o lto-plugin.lo ../../lto-plugin/lto-plugin.c libtool: compile: gcc -DPACKAGE_NAME=\LTO plugin for ld\ -DPACKAGE_TARNAME=\lto-plugin\ -DPACKAGE_VERSION=\0.1\ -DPACKAGE_STRING=\LTO plugin for ld 0.1\ -DPACKAGE_BUGREPORT=\\ -DPACKAGE_URL=\\ -DPACKAGE=\lto-plugin\ -DVERSION=\0.1\ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\.libs/\ -I. -I../../lto-plugin -I../../lto-plugin/../include -I/usr/include/libelf -Wall -Werror -O2 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables -g -U_FORTIFY_SOURCE -MT lto-plugin.lo -MD -MP -MF .deps/lto-plugin.Tpo -c ../../lto-plugin/lto-plugin.c -fPIC -DPIC -o .libs/lto-plugin.o libtool: compile: gcc -DPACKAGE_NAME=\LTO plugin for ld\ -DPACKAGE_TARNAME=\lto-plugin\ -DPACKAGE_VERSION=\0.1\ -DPACKAGE_STRING=\LTO plugin for ld 0.1\ -DPACKAGE_BUGREPORT=\\ -DPACKAGE_URL=\\ -DPACKAGE=\lto-plugin\ -DVERSION=\0.1\ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\.libs/\ -I. -I../../lto-plugin -I../../lto-plugin/../include -I/usr/include/libelf -Wall -Werror -O2 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables -g -U_FORTIFY_SOURCE -MT lto-plugin.lo -MD -MP -MF .deps/lto-plugin.Tpo -c ../../lto-plugin/lto-plugin.c -o lto-plugin.o /dev/null 21 mv -f .deps/lto-plugin.Tpo .deps/lto-plugin.Plo /bin/sh ./libtool --tag=CC --mode=link gcc -Wall -Werror -O2 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -funwind-tables -fasynchronous-unwind-tables -g -U_FORTIFY_SOURCE -o liblto_plugin.la -rpath /usr/lib64/gcc/x86_64-suse-linux/4.5 lto-plugin.lo -lelf ../libiberty/pic/libiberty.a *** Warning: Linking the shared library liblto_plugin.la against the *** static library ../libiberty/pic/libiberty.a is not portable! libtool: link: rm -fr .libs/liblto_plugin.a .libs/liblto_plugin.la .libs/liblto_plugin.lai .libs/liblto_plugin.so .libs/liblto_plugin.so.0 .libs/liblto_plugin.so.0.0.0 libtool: link: /usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux/./prev-gcc/xgcc -B/usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux/./prev-gcc/ -B/usr/x86_64-suse-linux/bin/ -B/usr/x86_64-suse-linux/bin/ -B/usr/x86_64-suse-linux/lib/ -isystem /usr/x86_64-suse-linux/include -isystem /usr/x86_64-suse-linux/sys-include-shared .libs/lto-plugin.o -lelf ../libiberty/pic/libiberty.a-Wl,-soname -Wl,liblto_plugin.so.0 -o .libs/liblto_plugin.so.0.0.0 ./libtool: line 7985: /usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux/./prev-gcc/xgcc: No such file or directory make[2]: *** [liblto_plugin.la] Error 127 make[2]: Leaving directory `/usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux/lto-plugin' make[1]: Leaving directory `/usr/src/packages/BUILD/gcc-4.5.0-20091018/obj-x86_64-suse-linux' make: *** [install] Error 2 so, it uses the host compiler here but a weird linker. The Makefile suggests CCLD which is set to CC. I can't really see how it picks up ./prev-gcc/xgcc here ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41569
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #4 from rearnsha at gcc dot gnu dot org 2009-10-19 15:18 --- (In reply to comment #3) .text ldr r0, .L30 ... .section.text.unlikely .L30: .word 1819043176 This is broken. We can't reference from .text to .text.unlikely since we can't guarantee that the section will be within 4k of the location doing the load. -- rearnsha at gcc dot gnu dot org changed: What|Removed |Added CC||rearnsha at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #6 from jakub at gcc dot gnu dot org 2009-10-19 15:21 --- Try also -g -O2 -fno-strict-aliasing, if that one works, look for aliasing warnings. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #5 from rearnsha at gcc dot gnu dot org 2009-10-19 15:26 --- (In reply to comment #1) Subject: Re: New: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE The ARM constant pool code needs to handle a NOTE_INSN_SWITCH_TEXT_SECTIONS note in some way as indicating insns on one side mustn't use constant pool entries on the other side. One possible approach would be treating such a note as an insn of length 4100, but there might be a cleaner way. I don't think there should be such notes on ARM due to the branch-range limitation. We can't arbitrarily jump between sections in Thumb state, for example -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #6 from steven at gcc dot gnu dot org 2009-10-19 15:42 --- You should not depend on NOTE_INSN_SWITCH_TEXT_SECTIONS. There are other ways to see if a jump goes from one section to another: edge-flags EDGE_CROSSING (preferred), and REG_CROSSING_JUMP notes (more reliable in post-pass_free_cfg world). There is no hook to disable the hot-cold partitioning pass right now. For thumb mode, the ARM back end should just set flag_reorder_blocks_and_partition = 0, like Xtensa and MIPS (for MIPS16 mode) already do, for similar reasons. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug middle-end/41753] OOP - segfault with -O2 using methods as actual arguments
--- Comment #2 from pault at gcc dot gnu dot org 2009-10-19 15:46 --- Have cc'd Richi to see if he can shed any light on this. Paul -- pault at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-19 15:46:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41753
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #7 from rearnsha at gcc dot gnu dot org 2009-10-19 15:50 --- (In reply to comment #6) You should not depend on NOTE_INSN_SWITCH_TEXT_SECTIONS. There are other ways to see if a jump goes from one section to another: edge-flags EDGE_CROSSING (preferred), and REG_CROSSING_JUMP notes (more reliable in post-pass_free_cfg world). There is no hook to disable the hot-cold partitioning pass right now. For thumb mode, the ARM back end should just set flag_reorder_blocks_and_partition = 0, like Xtensa and MIPS (for MIPS16 mode) already do, for similar reasons. Indeed. In fact even for ARM state, we can only support this option if both the insn-address code correctly separates hot and cold addresses (and I suspect it doesn't) and the literal-pool extraction code correctly extracts the above information (which it certainly doesn't). So at present we have no choice but to disable this optimization for all ARM configurations. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug middle-end/41734] ICE in cgraph_mark_functions_to_output, at cgraphunit.c:1137 with -fwhopr
--- Comment #4 from rguenth at gcc dot gnu dot org 2009-10-19 16:03 --- Papering over this bug gets us as far as reaching void cgraph_mark_needed_node (struct cgraph_node *node) { node-needed = 1; gcc_assert (!node-global.inlined_to); -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41734
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #7 from rainer at emrich-ebersheim dot de 2009-10-19 16:08 --- Subject: Re: gcc 4.5.0 miscompiles binutils jakub at gcc dot gnu dot org wrote: --- Comment #6 from jakub at gcc dot gnu dot org 2009-10-19 15:21 --- Try also -g -O2 -fno-strict-aliasing, if that one works, look for aliasing warnings. works when build with -g -O2 -fno-ipa-sra and -g -O3 -fno-ipa-sra. So, that's the easy part. Try to get further. Any help appreciated. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #8 from rainer at emrich-ebersheim dot de 2009-10-19 16:19 --- fails when build with -g -O1 -fipa-sra. So, the ipa-sra pass causes the issue, no? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #8 from rearnsha at gcc dot gnu dot org 2009-10-19 16:19 --- Created an attachment (id=18826) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18826action=view) Proposed patch Currently only very lightly tested, but this should solve the issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #9 from rainer at emrich-ebersheim dot de 2009-10-19 16:30 --- build with -g -O1 -fipa-sra -fno-inline I get the following backtrace: Core was generated by `ia64-unknown-linux-gnu-ld --verbose --sysroot=/opt/devel/tec/setup/sys-root/Lin'. Program terminated with signal 11, Segmentation fault. #0 0x0043c3e3 in get_got (abfd=0x711300, info=value optimized out) at elf64-ia64.c:2073 2073 return x-addend y-addend ? -1 : x-addend y-addend ? 1 : 0; (gdb) where #0 0x0043c3e3 in get_got (abfd=0x711300, info=value optimized out) at elf64-ia64.c:2073 #1 0x0043c9bc in elf64_ia64_check_relocs (abfd=value optimized out, info=0x6ead00, sec=value optimized out, relocs=value optimized out) at elf64-ia64.c:2073 #2 0x00459a52 in elf_link_add_object_symbols (abfd=value optimized out, info=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/bfd/elflink.c:477 #3 0x00459e85 in bfd_elf_link_add_symbols (abfd=value optimized out, info=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/bfd/elflink.c:477 #4 0x0040f947 in load_symbols (entry=0x6eb1e0, place=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldlang.c:353 #5 0x0040fea4 in open_input_bfds (s=0x6eb1e0, force=0) at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldlang.c:353 #6 0x0041217e in lang_process () at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldlang.c:353 #7 0x00414cc0 in main (argc=27, argv=0x7fffa21c0d78) at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldmain.c:1383 (gdb) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #9 from joseph at codesourcery dot com 2009-10-19 16:44 --- Subject: Re: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE On Mon, 19 Oct 2009, rearnsha at gcc dot gnu dot org wrote: I don't think there should be such notes on ARM due to the branch-range limitation. We can't arbitrarily jump between sections in Thumb state, for example Nowadays GNU ld supports generating long branch stubs on ARM. It's intended for calls in large programs, but shouldn't it be possible to get the compiler to generate jumps between sections within a function that the linker can then make use the long branch stubs if necessary? (Given a solution to the constant pools issue.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug fortran/41755] Segfault on invalid code
--- Comment #2 from kargl at gcc dot gnu dot org 2009-10-19 16:45 --- I'm regression testing a patch at the moment. -- kargl at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |kargl at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-19 16:45:52 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41755
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #10 from joseph at codesourcery dot com 2009-10-19 16:46 --- Subject: Re: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE On Mon, 19 Oct 2009, rearnsha at gcc dot gnu dot org wrote: Created an attachment (id=18826) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18826action=view) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18826action=view) Proposed patch Currently only very lightly tested, but this should solve the issue. The diagnostic should not end with .. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug libstdc++/40654] [C++0x] atomic.cc: 'd' is used uninitialized warning
--- Comment #7 from bkoz at gcc dot gnu dot org 2009-10-19 16:46 --- In for gcc-4.4.3 -- bkoz at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED Target Milestone|--- |4.4.3 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40654
[Bug libstdc++/40826] [C++0x] atomic_flag_{test_and_set,clear}_explicit() are apparently broken
--- Comment #5 from bkoz at gcc dot gnu dot org 2009-10-19 16:47 --- Fixed on trunk and gcc-4_4-branch -- bkoz at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40826
[Bug fortran/41755] Segfault on invalid code
--- Comment #3 from burnus at gcc dot gnu dot org 2009-10-19 16:50 --- I already posted one - http://gcc.gnu.org/ml/fortran/2009-10/msg00172.html I thought I had marked it as ASSIGNED but seemingly I was distracted and didn't :-( -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41755
[Bug lto/41756] New: LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge
$ /home/edwin/inst/bin/g++ -v Using built-in specs. COLLECT_GCC=/home/edwin/inst/bin/g++ COLLECT_LTO_WRAPPER=/home/edwin/inst/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../gcc/configure --enable-lto --enable-languages=c,c++ --enable-gold Thread model: posix gcc version 4.5.0 20091019 (experimental) (GCC) sh -x script + /home/edwin/inst/bin/g++ -fPIC SourceMgr.i -flto -fno-exceptions -O1 -c -o SourceMgr.o + /home/edwin/inst/bin/g++ -fPIC AsmMatcherEmitter.i -flto -O1 -c -o AsmMatcher.o + /home/edwin/inst/bin/g++ -flto -use-linked-plugin -O1 AsmMatcher.o SourceMgr.o -shared In function EmitIsSubclass: lto1: error: BB 14 can not throw but has an EH edge lto1: error: BB 15 can not throw but has an EH edge lto1: error: BB 16 can not throw but has an EH edge lto1: error: BB 18 can not throw but has an EH edge lto1: error: BB 19 can not throw but has an EH edge lto1: error: BB 20 can not throw but has an EH edge lto1: error: BB 22 can not throw but has an EH edge lto1: error: BB 23 can not throw but has an EH edge lto1: error: BB 25 can not throw but has an EH edge lto1: error: BB 26 can not throw but has an EH edge lto1: error: BB 27 can not throw but has an EH edge lto1: error: BB 30 can not throw but has an EH edge lto1: internal compiler error: verify_flow_info failed Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. lto-wrapper: /home/edwin/inst/bin/g++ returned 1 exit status collect2: lto-wrapper returned 1 exit status -- Summary: LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: edwintorok at gmail dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41756
[Bug lto/41756] LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge
--- Comment #1 from edwintorok at gmail dot com 2009-10-19 16:55 --- Created an attachment (id=18827) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18827action=view) SourceMgr.i preprocessed SourceMgr.i -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41756
[Bug lto/41756] LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge
--- Comment #2 from edwintorok at gmail dot com 2009-10-19 16:56 --- Created an attachment (id=18828) -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18828action=view) AsmMatcherEmitter.i.bz2 bzipped preprocessed AsmMatcherEmitter.i -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41756
[Bug lto/41756] LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge
--- Comment #3 from edwintorok at gmail dot com 2009-10-19 16:58 --- ld -v GNU gold (GNU Binutils for Debian 2.20) 1.9 This happens only if I use all of -flto -O1 -use-linker-plugin, not using -O1, or not using -use-linker-plugin hides the bug (and not using -flto too of course). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41756
[Bug lto/41756] LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge
--- Comment #4 from edwintorok at gmail dot com 2009-10-19 16:59 --- (In reply to comment #3) ld -v GNU gold (GNU Binutils for Debian 2.20) 1.9 This happens only if I use all of -flto -O1 -use-linker-plugin, not using -O1, or not using -use-linker-plugin hides the bug (and not using -flto too of course). Actually -use-linker-plugin makes no difference -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41756
[Bug debug/41340] [4.5 Regression] G++ produces different code with and without -g option
--- Comment #7 from jakub at gcc dot gnu dot org 2009-10-19 17:05 --- Confirmed, for -m32 -march=i686 -O3 -g vs. -g0 generates different code on: typedef struct { int t; } *T; struct S1 { unsigned s1; }; struct S2 { struct S1 s2; }; struct S3 { unsigned s3; struct S2 **s4; }; struct S5 { struct S2 *s5; }; extern void fn0 (void) __attribute__ ((__noreturn__)); T fn6 (struct S3); void fn7 (void); int fn1 (const struct S1 *x) { return x-s1; } int fn2 (const struct S1 *x, unsigned y) { if (y = x-s1) fn0 (); return 0; } int fn3 (struct S3 x) { return (x.s3 == fn1 (*x.s4 ? (*x.s4)-s2 : 0)); } int fn4 (struct S3 x) { return fn2 ((*x.s4)-s2, x.s3); } int fn5 (struct S3 x, T *y) { if (!fn3 (x)) { *y = (T) (long) fn4 (x); return 1; } return 0; } void test (struct S5 *x) { struct S3 a; T b; unsigned char c = 0; a.s4 = x-s5; while (fn5 (a, b)) if (!(b-t 8)) c = 1; a.s4 = x-s5; while ((b = fn6 (a))) ; if (!c) fn7 (); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41340
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #10 from rainer at emrich-ebersheim dot de 2009-10-19 17:06 --- The line numbers in the traceback in comment #9 are completly bogus. I had to upgrade my gdb to version 0.7. Now it looks much better: Core was generated by `ia64-unknown-linux-gnu-ld --verbose --sysroot=/opt/devel/tec/setup/sys-root/Lin'. Program terminated with signal 11, Segmentation fault. #0 get_got (abfd=0x711300, info=value optimized out) at elf64-ia64.c:2418 2418 if (!bfd_set_section_alignment (abfd, got, 3)) (gdb) where #0 get_got (abfd=0x711300, info=value optimized out) at elf64-ia64.c:2418 #1 0x0043c9bc in elf64_ia64_check_relocs (abfd=value optimized out, info=0x6ead00, sec=value optimized out, relocs=value optimized out) at elf64-ia64.c:2973 #2 0x00459a52 in elf_link_add_object_symbols (abfd=value optimized out, info=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/bfd/elflink.c:4774 #3 0x00459e85 in bfd_elf_link_add_symbols (abfd=value optimized out, info=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/bfd/elflink.c:5097 #4 0x0040f947 in load_symbols (entry=0x6eb1e0, place=value optimized out) at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldlang.c:2707 #5 0x0040fea4 in open_input_bfds (s=0x6eb1e0, force=0) at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldlang.c:3138 #6 0x0041217e in lang_process () at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldlang.c:6287 #7 0x00414cc0 in main (argc=27, argv=0x7fffa21c0d78) at /opt/devel/gnu/src/gcc/binutils-2.20/ld/ldmain.c:455 (gdb) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug java/41745] Segmentation fault when ecj.jar is run as a binary compiled by gcj
--- Comment #4 from yuri at tsoft dot com 2009-10-19 17:20 --- I confirm this on FreeBSD-8.0 for gcc-4.5.0.20091001. I notified the maintainer of FreeBSD gcc port. But once the fix will be found it should go into gcj itself, not into port. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41745
[Bug debug/41340] [4.5 Regression] G++ produces different code with and without -g option
--- Comment #8 from jakub at gcc dot gnu dot org 2009-10-19 17:14 --- NONDEBUG_INSN_P differences start appearing in DSE1, looking into it. -- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-19 17:14:34 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41340
[Bug middle-end/41750] gcc 4.5.0 miscompiles binutils
--- Comment #11 from rainer at emrich-ebersheim dot de 2009-10-19 17:24 --- verified that compiling only bfd/elf64-ia64.c with -fno-ipa-sra is sufficient to get a working ia64-unknown-linux-gnu-ld. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41750
[Bug lto/41756] LTO: -flto -O1 -use-linker-plugin, linking files compiled with -fno-exceptions with ones compiled with exceptions yields error BB 14 can not throw but has an EH edge
--- Comment #5 from steven at gcc dot gnu dot org 2009-10-19 17:34 --- You can't merge no-exception and exception code, it seems. Should exceptions be enabled per-function for LTO? -- steven at gcc dot gnu dot org changed: What|Removed |Added CC||dnovillo at gcc dot gnu dot ||org, hubicka at gcc dot gnu ||dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-10-19 17:34:08 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41756
[Bug target/39247] FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE
--- Comment #11 from rearnsha at gcc dot gnu dot org 2009-10-19 17:51 --- (In reply to comment #9) Subject: Re: FAIL: gcc.dg/tree-prof/bb-reorg.c compilation, -fprofile-use -D_PROFILE_USE On Mon, 19 Oct 2009, rearnsha at gcc dot gnu dot org wrote: I don't think there should be such notes on ARM due to the branch-range limitation. We can't arbitrarily jump between sections in Thumb state, for example Nowadays GNU ld supports generating long branch stubs on ARM. It's intended for calls in large programs, but shouldn't it be possible to get the compiler to generate jumps between sections within a function that the linker can then make use the long branch stubs if necessary? (Given a solution to the constant pools issue.) The compiler generated stubs are permitted to clobber registers that would not normally be affected (namely IP), so we'd need to build that knowledge into the compiler. Actually, the manual suggests the compiler can deal with this without the need for using the range-limited branches since it will generate indirect jumps. The literal-pool problem still needs to be solved though and that's non-trivial. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39247
[Bug fortran/41755] Segfault on invalid code
--- Comment #4 from burnus at gcc dot gnu dot org 2009-10-19 18:03 --- Subject: Bug 41755 Author: burnus Date: Mon Oct 19 18:03:02 2009 New Revision: 152983 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152983 Log: 2009-10-19 Tobias Burnus bur...@net-b.de Steven G. Kargl ka...@gcc.gnu.org PR fortran/41755 * symbol.c (gfc_undo_symbols): Add NULL check. * match.c (gfc_match_equivalence): Add check for missing comma. 2009-10-19 Tobias Burnus bur...@net-b.de PR fortran/41755 * gfortran.dg/equiv_8.f90: New test. * gfortran.dg/class_allocate_1.f03: Remove obsolete FIXME. Added: trunk/gcc/testsuite/gfortran.dg/equiv_8.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/match.c trunk/gcc/fortran/symbol.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/class_allocate_1.f03 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41755
[Bug libstdc++/40852] [parallel-mode] parallel sort run time increases ~10 fold when vector size gets over ~4*10^9
--- Comment #6 from jason at gcc dot gnu dot org 2009-10-19 18:07 --- Have you tried selecting a different sort algorithm? The default seems to be the multi-way mergesort, but there are two quicksort options as well. -- jason at gcc dot gnu dot org changed: What|Removed |Added CC||jason at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40852
[Bug debug/41340] [4.5 Regression] G++ produces different code with and without -g option
--- Comment #9 from jakub at gcc dot gnu dot org 2009-10-19 18:35 --- Actually, it is not DSE1 but already loop-invariant.c, and the difference is in max_reg_pressure of the current loop (4 vs. 5 for one of the classes). -- jakub at gcc dot gnu dot org changed: What|Removed |Added CC||vmakarov at gcc dot gnu dot ||org AssignedTo|jakub at gcc dot gnu dot org|unassigned at gcc dot gnu ||dot org Status|ASSIGNED|NEW http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41340
[Bug fortran/41586] Allocatable _scalars_ are never auto-deallocated
--- Comment #4 from janus at gcc dot gnu dot org 2009-10-19 18:46 --- Mine. Have a patch: http://gcc.gnu.org/ml/fortran/2009-10/msg00171.html -- janus at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|tkoenig at gcc dot gnu dot |janus at gcc dot gnu dot org |org | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41586
[Bug java/41745] Segmentation fault when ecj.jar is run as a binary compiled by gcj
--- Comment #5 from yuri at tsoft dot com 2009-10-19 19:12 --- How to run testsuite for gcj? When I run 'gmake check-gcc' from the build directory it doesn't run gcj tests at all, and gcc/g++ tests summaries are all empty. Not sure what that means. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41745
[Bug fortran/41755] Segfault on invalid code
--- Comment #5 from burnus at gcc dot gnu dot org 2009-10-19 19:18 --- Subject: Bug 41755 Author: burnus Date: Mon Oct 19 19:18:12 2009 New Revision: 152987 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152987 Log: 2009-10-19 Tobias Burnus bur...@net-b.de Steven G. Kargl ka...@gcc.gnu.org PR fortran/41755 * symbol.c (gfc_undo_symbols): Add NULL check. * match.c (gfc_match_equivalence): Add check for missing comma. 2009-10-19 Tobias Burnus bur...@net-b.de PR fortran/41755 * gfortran.dg/equiv_8.f90: New test. Added: branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/equiv_8.f90 Modified: branches/gcc-4_4-branch/gcc/fortran/ChangeLog branches/gcc-4_4-branch/gcc/fortran/match.c branches/gcc-4_4-branch/gcc/fortran/symbol.c branches/gcc-4_4-branch/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41755
[Bug fortran/41586] Allocatable _scalars_ are never auto-deallocated
--- Comment #5 from janus at gcc dot gnu dot org 2009-10-19 19:21 --- Subject: Bug 41586 Author: janus Date: Mon Oct 19 19:21:18 2009 New Revision: 152988 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=152988 Log: 2009-10-19 Janus Weil ja...@gcc.gnu.org PR fortran/41586 * parse.c (parse_derived): Correctly set 'alloc_comp' and 'pointer_comp' for CLASS variables. * trans-array.c (structure_alloc_comps): Handle deallocation and nullification of allocatable scalar components. * trans-decl.c (gfc_get_symbol_decl): Remember allocatable scalars for automatic deallocation. (gfc_trans_deferred_vars): Automatically deallocate allocatable scalars. 2009-10-19 Janus Weil ja...@gcc.gnu.org PR fortran/41586 * gfortran.dg/auto_dealloc_1.f90: New test case. Added: trunk/gcc/testsuite/gfortran.dg/auto_dealloc_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/parse.c trunk/gcc/fortran/trans-array.c trunk/gcc/fortran/trans-decl.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41586