[Bug target/49202] MMIX: Wrong debugging information generated (UNKNOWN: length 2)

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49202

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
06:43:25 UTC ---
If you have very old binutils/gdb, you might want to use -gstrict-dwarf, then
gcc won't emit the various debug info extensions, including discriminators.


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #3 from Uros Bizjak ubizjak at gmail dot com 2011-07-08 07:54:33 
UTC ---
Please add all information and especially preprocessed source, as explained in
http://gcc.gnu.org/bugs/#detailed


[Bug c++/49673] New: [C++0x] const variables initialised with constexpr constructor placed in .data not .rodata

2011-07-08 Thread thiago at kde dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49673

   Summary: [C++0x] const variables initialised with constexpr
constructor placed in .data not .rodata
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: thi...@kde.org


This bug is similar but not exactly like bug 4131. That bug is requesting that
regular, unmarked constructors be discovered to be trivial and pre-initialised
into .data or even .rodata. In this case here, we have the C++0x constexpr
marker added to the constructor already.

Given the following source code:
8-
struct Data
{
int i;
};

extern const Data test_data = { 1 };
8-

Compiled with
g++ -O3 -S

produces as expected (trimmed):
8-
.section.rodata
test_data:
.long   1
8-

However, if we add a constexpr constructor and make the code as:
8-
struct Data
{
int i;
constexpr inline Data(int i = 0) : i(i+1) {}
};

extern const Data test_data = { 1 };
8-

The +1 is added to confirm that the constexpr constructor was evaluated at
compile time. Compiled the same way produces no errors, however, it generates
the code:

8-
.data
test_data:
.long   2
8-

The constructor was evaluated and the result was properly calculated. However,
the result is stored in .data instead of .rodata as expected.


Compiler information:
Target: i586-mandriva-linux-gnu
Configured with: ./configure --build=i586-mandriva-linux-gnu --prefix=/usr
--exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
--datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib
--libexecdir=/usr/lib --localstatedir=/var --sharedstatedir=/usr/com
--mandir=/usr/share/man --infodir=/usr/share/info --x-includes=/usr/include
--x-libraries=/usr/lib --disable-libjava-multilib
--with-java-home=/usr/lib/jvm/java-rpmbuild
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-java-awt=qt,gtk
--enable-gtk-cairo --with-cloog --with-ppl --enable-cloog-backend=ppl
--disable-libssp --disable-libunwind-exceptions --disable-werror
--enable-__cxa_atexit --enable-bootstrap --enable-checking=release
--enable-gnu-unique-object
--enable-languages=c,ada,c++,fortran,go,java,lto,objc,obj-c++
--enable-linker-build-id --enable-plugin --enable-shared --enable-threads=posix
--with-system-zlib --with-bugurl=https://qa.mandriva.com/ --with-tune=generic
--with-arch=i686 --host=i586-mandriva-linux-gnu
--target=i586-mandriva-linux-gnu
Thread model: posix
gcc version 4.6.1 20110627 (Mandriva) (GCC)


[Bug c++/4131] The C++ compiler don't place a const class object to .rodata section with non trivial constructor

2011-07-08 Thread thiago at kde dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4131

Thiago Macieira thiago at kde dot org changed:

   What|Removed |Added

 CC||thiago at kde dot org

--- Comment #26 from Thiago Macieira thiago at kde dot org 2011-07-08 
08:03:50 UTC ---
Using GCC 4.6, which does support constexpr in C++0x mode, it turns out that
the compiler does place initialised variables in the .data section. However,
const variables are still in .data, not in .rodata.

I don't think they are the same issues, so I reported Bug 49673.


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #4 from Jeffrey Walton noloader at gmail dot com 2011-07-08 
08:07:43 UTC ---
(In reply to comment #0)
 Sorry if this was previously reported. Searching returned an error stating I
 used an invalid file extension.
 
 I was attempting to compile the latest Crypto++ (svn checkout
 https://cryptopp.svn.sourceforge.net/svnroot/cryptopp/trunk/c5 cryptopp) on a
 Dell GX280 (32 bit Pentium 4). Here's the internal compiler error:
 
 $ export PREFIX=/usr/local; make
 g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c 3way.cpp
 g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c adler32.cpp
 g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c algebra.cpp
 g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c algparam.cpp
 g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c arc4.cpp
 g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c asn.cpp
 asn.cpp: In member function ‘void
 CryptoPP::OID::DEREncode(CryptoPP::BufferedTransformation) const’:
 asn.cpp:254:1: error: unrecognizable insn:
 (insn 194 178 195 2 asn.cpp:248 (set (reg:SI 2 cx)
 (mem:QI (plus:SI (reg/f:SI 1 dx [orig:61 D.44160 ] [61])
 (const_int 4 [0x4])) [16 S1 A32])) -1 (nil))
 asn.cpp:254:1: internal compiler error: in extract_insn, at recog.c:2104
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See file:///usr/share/doc/gcc-4.5/README.Bugs for instructions.
 make: *** [asn.o] Error 1
 
 [SNIP]
 
 $ g++ --version
 g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
 Copyright (C) 2010 Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

It looks like removing `-mtune=native` fixed it:

$cat GNUMakefile
...
ifneq ($(GCC42_OR_LATER),0)
ifeq ($(UNAME),Darwin)
CXXFLAGS += -arch x86_64 -arch i386
else
# CXXFLAGS += -march=native
endif
endif
...

$ make
g++ -DNDEBUG -g -O2 -pipe -c 3way.cpp
g++ -DNDEBUG -g -O2 -pipe -c adler32.cpp
g++ -DNDEBUG -g -O2 -pipe -c algebra.cpp
g++ -DNDEBUG -g -O2 -pipe -c algparam.cpp
g++ -DNDEBUG -g -O2 -pipe -c arc4.cpp
g++ -DNDEBUG -g -O2 -pipe -c asn.cpp
g++ -DNDEBUG -g -O2 -pipe -c authenc.cpp
g++ -DNDEBUG -g -O2 -pipe -c base32.cpp
g++ -DNDEBUG -g -O2 -pipe -c base64.cpp
...


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #5 from Jeffrey Walton noloader at gmail dot com 2011-07-08 
08:35:11 UTC ---
Created attachment 24710
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24710
File asn.s from class file causing internal compiler error


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #6 from Jeffrey Walton noloader at gmail dot com 2011-07-08 
08:35:55 UTC ---
Created attachment 24711
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24711
File asn.ii from class causing internal compiler error


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #7 from Jeffrey Walton noloader at gmail dot com 2011-07-08 
08:36:08 UTC ---
(In reply to comment #3)
 Please add all information and especially preprocessed source, as explained in
 http://gcc.gnu.org/bugs/#detailed

Crypto++ sources:
`svn checkout https://cryptopp.svn.sourceforge.net/svnroot/cryptopp/trunk/c5
cryptopp`

Output from command is below, and asn.s attached:

jeffrey@bruno:~/Desktop/cryptopp$ make clean
...
jeffrey@bruno:~/Desktop/cryptopp$ gcc -v -save-temps -DNDEBUG -g -O2
-march=native -pipe -c asn.cpp 
gcc: warning: -pipe ignored because -save-temps specified
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.5 --enable-shared --enable-multiarch
--with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu
--enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default
--with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror
--with-arch-32=i686 --with-tune=generic --enable-checking=release
--build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-DNDEBUG' '-g' '-O2'  '-pipe' '-c'
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/cc1plus -E -quiet -v
-D_GNU_SOURCE -DNDEBUG asn.cpp -D_FORTIFY_SOURCE=2 -march=prescott --param
l1-cache-size=16 --param l1-cache-line-size=64 --param l2-cache-size=1024
-mtune=prescott -g -fworking-directory -O2 -fpch-preprocess -fstack-protector
-o asn.ii
ignoring nonexistent directory /usr/local/include/i386-linux-gnu
ignoring nonexistent directory
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../../../i686-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/include/c++/4.5
 /usr/include/c++/4.5/i686-linux-gnu
 /usr/include/c++/4.5/backward
 /usr/local/include
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/include
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/include-fixed
 /usr/include/i386-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-DNDEBUG' '-g' '-O2'  '-pipe' '-c'
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/cc1plus -fpreprocessed asn.ii
-march=prescott --param l1-cache-size=16 --param l1-cache-line-size=64 --param
l2-cache-size=1024 -mtune=prescott -quiet -dumpbase asn.cpp -auxbase asn -g -O2
-version -fstack-protector -o asn.s
GNU C++ (Ubuntu/Linaro 4.5.2-8ubuntu4) version 4.5.2 (i686-linux-gnu)
compiled by GNU C version 4.5.2, GMP version 4.3.2, MPFR version 3.0.0-p8,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++ (Ubuntu/Linaro 4.5.2-8ubuntu4) version 4.5.2 (i686-linux-gnu)
compiled by GNU C version 4.5.2, GMP version 4.3.2, MPFR version 3.0.0-p8,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 0c5cb630517b5952f4898dfa56d7e8e5
asn.cpp: In member function ‘void
CryptoPP::OID::DEREncode(CryptoPP::BufferedTransformation) const’:
asn.cpp:254:1: error: unrecognizable insn:
(insn 191 175 192 2 asn.cpp:248 (set (reg:SI 2 cx)
(mem:QI (plus:SI (reg/f:SI 1 dx [orig:60 D.44160 ] [60])
(const_int 4 [0x4])) [16 S1 A32])) -1 (nil))
asn.cpp:254:1: internal compiler error: in extract_insn, at recog.c:2104
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.5/README.Bugs for instructions.
jeffrey@bruno:~/Desktop/cryptopp$


[Bug middle-end/49662] [4.7 Regression] FAIL: gcc.dg/graphite/interchange-XX.c

2011-07-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49662

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-08 
08:42:36 UTC ---
Author: rguenth
Date: Fri Jul  8 08:42:31 2011
New Revision: 176031

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176031
Log:
2011-07-08  Richard Guenther  rguent...@suse.de

PR tree-optimization/49662
* gcc.dg/graphite/interchange-14.c: XFAIL.
* gcc.dg/graphite/interchange-15.c: Likewise.
* gcc.dg/graphite/interchange-mvt.c: Likewise.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/graphite/interchange-14.c
trunk/gcc/testsuite/gcc.dg/graphite/interchange-15.c
trunk/gcc/testsuite/gcc.dg/graphite/interchange-mvt.c


[Bug tree-optimization/49662] [4.7 Regression] XFAIL: gcc.dg/graphite/interchange-XX.c, PRE confuses loop interchange

2011-07-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49662

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization, xfail
  Component|middle-end  |tree-optimization
Summary|[4.7 Regression] FAIL:  |[4.7 Regression] XFAIL:
   |gcc.dg/graphite/interchange |gcc.dg/graphite/interchange
   |-XX.c   |-XX.c, PRE confuses loop
   ||interchange

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-08 
08:43:44 UTC ---
Now XFAILed.


[Bug c/40528] Add a new ifunc attribute

2011-07-08 Thread agner at agner dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40528

--- Comment #16 from Agner Fog agner at agner dot org 2011-07-08 08:52:32 UTC 
---
(In reply to comment #15)
 (In reply to comment #14)
  (In reply to comment #13)
   What is the status of this issue?
  
  It is implemented on ifunc branch.
  
   Is option 3 implemented?
  
  Yes, on ifunc branch.
  
   Which versions of Linux and binutils support IFUNC?
 Still doesn't work. 
 warning: ‘ifunc’ attribute directive ignored
 GNU Binutils for Ubuntu 2.21.0.20110327

The ifunc attribute is described in
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html but it doesn't work
(see my previous comment). After some experimentation I found that the method
described below works. Either the compiler should be fixed or the onlinedocs
should be changed.

// Example of gnu indirect function
#include stdio.h
#include time.h

// Define different versions of my function
int myfunc1() {
   return 1;
}

int myfunc2() {
   return 2;
}

// Type definition for pointer to my function
typedef int (*MyFunctionPointer)(void);

// Prototype for the common entry point 
extern C  // remove this line if not C++
int myfunc();
__asm__ (.type myfunc, @gnu_indirect_function);

// Make the dispatcher function
MyFunctionPointer myfunc_dispatch (void) __asm__ (myfunc);
MyFunctionPointer myfunc_dispatch (void)  {

   if (time(0)  1) {
  // If time is odd at first call, use version 1
  return myfunc1;
   }
   else {
  // else use version 2
  return myfunc2;
   }
}

int main() {
   // Test the call to myfunc
   printf(\nCalled function number %i\n, myfunc());
   return 0;
}


[Bug c/49674] New: Improve documentation for __attribute__ __section__

2011-07-08 Thread rdiezmail-gcc at yahoo dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49674

   Summary: Improve documentation for __attribute__ __section__
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: rdiezmail-...@yahoo.de


Can someone please improve the documentation for __attribute__ __section__ ?
Only functions are mentioned, but I know it works for variables too. This is
the documentation page on the Web:

  http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Function-Attributes.html

Apparently, there are checks in GCC against the section properties. For
example, you cannot place a non-const variable in a const section, you get a
section type conflict error message. Documentation about this would be an
extra bonus.

I wonder how documentation bugs are handled in this project, I couldn't find
any documentation category in Bugzilla.

Many thanks in advance.


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #8 from Uros Bizjak ubizjak at gmail dot com 2011-07-08 09:42:59 
UTC ---
The included source compiles OK for me with:

~/gcc-build/gcc/cc1plus -quiet -O2 -m32 -g -fstack-protector -march=prescott
-mtune=prescott --param l1-cache-size=16 --param l1-cache-line-size=64 --param
l2-cache-size=1024 asn.ii

Tried with:
GNU C++ (GCC) version 4.5.4 20110525 (prerelease)
GNU C++ (GCC) version 4.6.1 20110611 (prerelease)
GNU C++ (GCC) version 4.7.0 20110707 (experimental)

The bug is either fixed or local to:

g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2

Please try to reproduce the bug with latest FSF compiler. Alternatively, please
report the bug to Ubuntu.


[Bug rtl-optimization/47918] [4.6/4.7 Regression] noreturn discovery broke non local gotos on m68k

2011-07-08 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47918

--- Comment #6 from Mikael Pettersson mikpe at it dot uu.se 2011-07-08 
09:42:26 UTC ---
I can trigger the bug on i386 too, if I tweak the i386 backend to push function
parameters rather than moving them to pre-allocated stack space, and to
disallow regparm promotion for calls to non-exported functions, via this patch:

--- gcc-4.6-r160123/gcc/config/i386/i386.h.~1~  2010-05-29 16:03:31.0
+0200
+++ gcc-4.6-r160123/gcc/config/i386/i386.h  2011-07-08 10:43:46.0
+0200
@@ -1513,13 +1513,21 @@ enum reg_class
prologue and apilogue.  This is not possible without
ACCUMULATE_OUTGOING_ARGS.  */

+#if 0
 #define ACCUMULATE_OUTGOING_ARGS \
   (TARGET_ACCUMULATE_OUTGOING_ARGS || ix86_cfun_abi () == MS_ABI)
+#else
+#define ACCUMULATE_OUTGOING_ARGS 0
+#endif

 /* If defined, a C expression whose value is nonzero when we want to use PUSH
instructions to pass outgoing arguments.  */

+#if 0
 #define PUSH_ARGS (TARGET_PUSH_ARGS  !ACCUMULATE_OUTGOING_ARGS)
+#else
+#define PUSH_ARGS 1
+#endif

 /* We want the stack and args grow in opposite directions, even if
PUSH_ARGS is 0.  */
@@ -1804,7 +1812,11 @@ typedef struct ix86_args {
 #define X86_64_REGPARM_MAX 6
 #define X86_64_MS_REGPARM_MAX 4

+#if 0
 #define X86_32_REGPARM_MAX 3
+#else
+#define X86_32_REGPARM_MAX 0
+#endif

 #define REGPARM_MAX\
   (TARGET_64BIT ? (TARGET_64BIT_MS_ABI ? X86_64_MS_REGPARM_MAX \

With that in place gcc still bootstraps ok on i686-linux, but r160124 now
miscompiles non-local-goto-4.c just like on m68k (see the changed and now
incorrect stack offset in the first insn after L4):

--- non-local-goto-4.s-r160123  2011-07-08 10:58:40.0 +0200
+++ non-local-goto-4.s-r160124  2011-07-08 11:24:05.0 +0200
@@ -25,19 +25,17 @@
movl%esp, 8(%esp)
pushl   36(%esp)
cally.1220
-   popl%eax
+   .p2align 4,,7
+   .p2align 3
+.L2:
 .L4:
-   movl36(%esp), %eax
+   movl40(%esp), %eax
movl16(%esp), %ebx
movl20(%esp), %esi
movl24(%esp), %edi
movl28(%esp), %ebp
addl$32, %esp
ret
-   .p2align 4,,7
-   .p2align 3
-.L2:
-   jmp .L4
.size   x, .-x
.p2align 4,,15
 .globl main

When I look at dumps everything looks ok up to .188r.asmcons, but in .191r.ira
I see a new load from the stack with the wrong offset.


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #9 from Jeffrey Walton noloader at gmail dot com 2011-07-08 
09:51:21 UTC ---
(In reply to comment #8)
 The included source compiles OK for me with:
 
 ~/gcc-build/gcc/cc1plus -quiet -O2 -m32 -g -fstack-protector -march=prescott
 -mtune=prescott --param l1-cache-size=16 --param l1-cache-line-size=64 --param
 l2-cache-size=1024 asn.ii
 
 Tried with:
 GNU C++ (GCC) version 4.5.4 20110525 (prerelease)
 GNU C++ (GCC) version 4.6.1 20110611 (prerelease)
 GNU C++ (GCC) version 4.7.0 20110707 (experimental)
Interesting. If it matters, the hardware is a Dell GX280.

 The bug is either fixed or local to:
 
 g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
 
 Please try to reproduce the bug with latest FSF compiler. Alternatively, 
 please
 report the bug to Ubuntu.
OK, thanks. The folks at Ubuntu are aware:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/807156.

Thanks for the quick response and help.


[Bug testsuite/48727] FAIL: g++.dg/opt/devirt2.C scan-assembler-times xyzzy 2

2011-07-08 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48727

--- Comment #7 from Rainer Orth ro at gcc dot gnu.org 2011-07-08 10:20:39 UTC 
---
Author: ro
Date: Fri Jul  8 10:20:36 2011
New Revision: 176034

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176034
Log:
PR testsuite/48727
* g++.dg/opt/devirt2.C: Use specific pattern for sparc*-*-*.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/opt/devirt2.C


[Bug c/49674] Improve documentation for __attribute__ __section__

2011-07-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49674

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||documentation
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.08 10:23:58
 Ever Confirmed|0   |1


[Bug middle-end/49671] [4.6/4.7 Regression] volatile goes missing after inlining

2011-07-08 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49671

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-08 
10:30:32 UTC ---
Doesn't the outermost component also need TREE_THIS_VOLATILE?  So I suppose
sink the

  TREE_THIS_VOLATILE (*tp) = TREE_THIS_VOLATILE (old);

from the else branch as well.


[Bug target/48108] lto should be containerized in a single mach-o section on darwin

2011-07-08 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48108

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #24705|0   |1
is obsolete||

--- Comment #14 from Iain Sandoe iains at gcc dot gnu.org 2011-07-08 10:33:47 
UTC ---
Created attachment 24712
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24712
updated work in progress

there were a couple of hunks in the previous from another LTO patch, that
reportedly gave problems on x86-64-darwin11.   The attached is OK AFAICT, on
4.6, trunk x86-64-darwin10, *-darwin9.

(still incomplete).


[Bug rtl-optimization/47918] [4.6/4.7 Regression] noreturn discovery broke non local gotos on m68k and i386

2011-07-08 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47918

Mikael Pettersson mikpe at it dot uu.se changed:

   What|Removed |Added

 Target|m68k-linux  |m68k-linux,
   ||i686-pc-linux-gnu
  Known to work||4.5.3
Summary|[4.6/4.7 Regression]|[4.6/4.7 Regression]
   |noreturn discovery broke|noreturn discovery broke
   |non local gotos on m68k |non local gotos on m68k and
   ||i386
  Known to fail||4.6.1

--- Comment #7 from Mikael Pettersson mikpe at it dot uu.se 2011-07-08 
10:56:32 UTC ---
I don't even have to tweak the i386 backend to trigger the error on i386, just
make the nested function y() regparm(0)

--- non-local-goto-4.c.~1~  2011-07-07 20:04:29.0 +0200
+++ non-local-goto-4.c  2011-07-08 12:49:36.0 +0200
@@ -15,7 +15,7 @@ int
 x(a)
 {
   __label__ xlab;
-  void y(a)
+  void __attribute__((regparm(0))) y(a)
 {
   if (a==0)
goto xlab;

and compile with options to force the use of PUSH for parameter passing:

 gcc -O3 -fomit-frame-pointer -fno-asynchronous-unwind-tables -mpush-args 
 -mno-accumulate-outgoing-args non-local-goto-4.c
 ./a.out
Abort


[Bug libstdc++/49559] [C++0x] stable_sort calls self-move-assignment operator

2011-07-08 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49559

--- Comment #16 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-08 
11:01:06 UTC ---
I believe I'm making good progress in analyzing, thus fixing, the issue with
inplace_merge: what I see clearly now is that - as noticed in Comment 9 for the
first time - __move_merge, for the purpose of __merge_adaptive, can be safely
changed to simply end with:

  return _GLIBCXX_MOVE3(__first1, __last1, __result);

and the self-move assignment issue is solved. The reason being that when the
main while loop is exited with __first2 != __last2, __first2 always points to
the same position pointed by __result: indeed, in the case of inplace_merge the
overall source and destination ranges coincide and nothing else is possible.

However, __move_merge is also used by __merge_sort_loop, where different
assumptions hold. I don't know at the moment if we can do something better than
just specializing __move_merge for __merge_adaptive per the above.

Also, remains to be analyzed the *_backward case.

Chris, any help is welcome.


[Bug target/49398] [4.7 Regression] bootstrap broken for arm-linux-gnueabi with thumb mode.

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49398

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #4 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-07-08 
11:10:54 UTC ---
This is now fixed.


[Bug target/48108] lto should be containerized in a single mach-o section on darwin

2011-07-08 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48108

--- Comment #15 from Jack Howarth howarth at nitro dot med.uc.edu 2011-07-08 
11:18:25 UTC ---
(In reply to comment #14)
 Created attachment 24712 [details]
 updated work in progress
 
 there were a couple of hunks in the previous from another LTO patch, that
 reportedly gave problems on x86-64-darwin11.   The attached is OK AFAICT, on
 4.6, trunk x86-64-darwin10, *-darwin9.
 
 (still incomplete).

http://gcc.gnu.org/ml/gcc-testresults/2011-07/msg00877.html

No serious regressions other than objc and friends when applied to gcc 4.6.1.


[Bug rtl-optimization/47918] [4.6/4.7 Regression] noreturn discovery broke non local gotos on m68k and i386

2011-07-08 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47918

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.08 11:21:08
 CC||ebotcazou at gcc dot
   ||gnu.org
 Ever Confirmed|0   |1

--- Comment #8 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-07-08 
11:21:08 UTC ---
This looks like a missing stack adjustment.  do_pending_stack_adjust needs to
be called before any potential control flow change.  Maybe such a call is
missing?


[Bug libstdc++/49559] [C++0x] stable_sort calls self-move-assignment operator

2011-07-08 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49559

--- Comment #17 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-08 
11:46:10 UTC ---
The *_backward case seems rather straightforward, with the roles of the
__first1, __last1 and __first2, __last2 ranges swapped.


[Bug fortran/49675] New: jacobi.F90:90:0: internal compiler error: Segmentation fault

2011-07-08 Thread kapinos at rz dot rwth-aachen.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49675

   Summary: jacobi.F90:90:0: internal compiler error: Segmentation
fault
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kapi...@rz.rwth-aachen.de


Created attachment 24713
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24713
the reproducer (MPI needed)

Hi, 
the 4.6.1 (and 4.6.0) versions of gfortran compiler suffers from a SIGSEGV if
compiling the attached Fortran code jacobi.F90. 

The bug does NOT apper with  4.5.1 version of gfortran. 

The error hangs together with the -finstrument-functions option.

Since the attached code snippets are MPI programs, you need a version of e.g.
OpenMPI (we use 1.4.3).

Best wishes
-PK


[Bug debug/49676] New: inefficiency: DW_AT_GNU_call_site_value calculates everything 32

2011-07-08 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49676

   Summary: inefficiency: DW_AT_GNU_call_site_value calculates
everything  32
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: trivial
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jan.kratoch...@redhat.com
CC: ja...@redhat.com
Target: x86_64-unknown-linux-gnu


It works but it is a bit size-inefficient/overcomplicated.

extern void d (int);
void __attribute__((noinline, noclone))
self (int i)
{
  if (i == 200)
self (i + 1);
  else
d (i + 2);
}

-g -O2
gcc (GCC) 4.7.0 20110708 (experimental)

DW_AT_GNU_call_site_value: 26 byte block: f3 1 55 23 2 8 cb f3 1 55 8 20 24 10
80 80 80 80 80 19 2e 28 1 0 16 13(DW_OP_GNU_entry_value: (DW_OP_reg5
(rdi)); DW_OP_plus_uconst: 2; DW_OP_const1u: 203; DW_OP_GNU_entry_value:
(DW_OP_reg5 (rdi)); DW_OP_const1u: 32; DW_OP_shl; DW_OP_constu: 858993459200;
DW_OP_ne; DW_OP_bra: 1; DW_OP_swap; DW_OP_drop)

this is:

DW_OP_GNU_entry_value: (DW_OP_reg5 (rdi))
DW_OP_plus_uconst: 2
 = 202
DW_OP_const1u: 203
DW_OP_GNU_entry_value: (DW_OP_reg5 (rdi))
DW_OP_const1u: 32
  32, 200, 203, 202
DW_OP_shl
  200  32, 203, 202
DW_OP_constu: 858993459200
  200  32, 200  32, 203, 202
DW_OP_ne
DW_OP_bra: 1
DW_OP_swap
DW_OP_drop

858993459200 = 200  32

There should not be a need to shl by 32 and calculate it everything  32.

unrelated: function was inlined by `cmovne' despite there is `noinline'.


[Bug target/43118] vld4 and vst4 intrinsics are not handled correctly

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43118

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org
  Known to fail||

--- Comment #7 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-07-08 
11:57:04 UTC ---
A recent version of 4.6.1 at O1 appears to give me . That would indicate this
is fixed in trunk.

blend4:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
vld4.8{d16-d19}, [r0]
vst4.8{d16-d19}, [r1]
bxlr
.sizeblend4, .-blend4
.identGCC: (GNU) 4.7.0 20110616 (experimental)
.section.note.GNU-stack,,%progbits


Ramana


[Bug middle-end/49675] [4.6/4.7 Regression] ICE (segfault) with -finstrument-functions

2011-07-08 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49675

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org
  Component|fortran |middle-end
   Target Milestone|--- |4.6.2
Summary|jacobi.F90:90:0: internal   |[4.6/4.7 Regression] ICE
   |compiler error: |(segfault) with
   |Segmentation fault  |-finstrument-functions

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-07-08 
12:08:22 UTC ---
Minimal test case:

  subroutine one()
  end subroutine one

compiled with gfortran -finstrument-functions. Valgrind shows:

==4467== Invalid read of size 2
==4467==at 0x76C5C4: gimple_build_call (gimple.c:262)
==4467==by 0x7A1DB8: gimplify_function_tree (gimplify.c:7938)
==4467==by 0x642EA7: cgraph_analyze_function (cgraphunit.c:890)
==4467==by 0x643697: cgraph_analyze_functions (cgraphunit.c:1108)
==4467==by 0x645544: cgraph_finalize_compilation_unit (cgraphunit.c:1294)
==4467==by 0x7F1C3C: write_global_declarations (langhooks.c:303)
==4467==by 0x8E9283: toplev_main (toplev.c:564)
==4467==by 0x645200C: (below main) (libc-start.c:226)

The ICE occurs in gimple_build_call (gimple.c:262) for:
  gcc_assert (TREE_CODE (fn) == FUNCTION_DECL || is_gimple_call_addr (fn));
The problem is that the argument is fn == NULL.


The callee (gimplify_function_tree (gimplify.c:7938)) is:

  x = implicit_built_in_decls[BUILT_IN_RETURN_ADDRESS];
  call = gimple_build_call (x, 1, integer_zero_node);

The problem is that  implicit_built_in_decls[BUILT_IN_RETURN_ADDRESS]  is NULL.


[Bug c++/49673] [C++0x] const variables initialised with constexpr constructor placed in .data not .rodata

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49673

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.07.08 12:21:03
 CC||jason at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug debug/49130] discrepancies between DW_AT_name and demangler

2011-07-08 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49130

--- Comment #11 from Jan Kratochvil jan.kratochvil at redhat dot com 
2011-07-08 12:33:19 UTC ---
I do not see any functionality problem from it, neither now and neither in the
future.

(In reply to comment #7)
 But DW_AT_name really represents the name of the operator as written in the
 source code[2], with its template parameters replaced with their
 corresponding arguments.

Both variants of this code:

#include string
template typename T
void f () {}
//int main () { fstd::string (); }
int main () { fstd::basic_stringchar  (); }

produce the same DWARF output:
2afa   DW_AT_name: fstd::basic_stringchar 

So one cannot say that one or the other matches the source code more.

One can only argue whether DWARF DW_AT_name should be compressed or not.


[Bug middle-end/49519] [4.7 Regression] Revision 175272 miscompiled 447.dealII in SPEC CPU 2006

2011-07-08 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519

--- Comment #24 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-07-08 
13:12:05 UTC ---
Author: hjl
Date: Fri Jul  8 13:12:03 2011
New Revision: 176042

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176042
Log:
Fix PR middle-end/49519.

gcc/

2011-07-08  Kirill Yukhin  kirill.yuk...@intel.com

PR middle-end/49519
* calls.c (mem_overlaps_already_clobbered_arg_p): Additional
check if address is stored in register. If so - give up.
(check_sibcall_argument_overlap_1): Do not perform check of
overlapping when it is call to address.

gcc/tessuite/

2011-07-08  Kirill Yukhin  kirill.yuk...@intel.com

PR middle-end/49519
* g++.dg/torture/pr49519.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/torture/pr49519.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/calls.c
trunk/gcc/testsuite/ChangeLog


[Bug debug/49676] inefficiency: DW_AT_GNU_call_site_value calculates everything 32

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49676

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
14:06:53 UTC ---
The reason for that is that, when not emitting typed DWARF, we have the call
site value of %edi:

(if_then_else:SI (ne (entry_value:SI (reg:SI 5 di [ i ]))
(const_int 200 [0xc8]))
(plus:SI (entry_value:SI (reg:SI 5 di [ i ]))
(const_int 2 [0x2]))
(const_int 203 [0xcb]))

and x86-64 has 64-bit DWARF2_ADDR_SIZE and we want to compare just the low 32
bits of the register.  DW_OP_ne compares whole 64-bit (untyped) integers, so
by shifting it up by 32 bits it can be compared easily.  In this exact case
when
it can be done as unsigned comparison too we could very well do:
@@ -134,11 +134,11 @@ self:
.byte   0xf3# DW_OP_GNU_entry_value
.uleb128 0x1
.byte   0x55# DW_OP_reg5
-   .byte   0x8 # DW_OP_const1u
-   .byte   0x20
-   .byte   0x24# DW_OP_shl
-   .byte   0x10# DW_OP_constu
-   .uleb128 0xc8
+   .byte   0xc # DW_OP_const4u
+   .long   0x
+   .byte   0x1a# DW_OP_and
+   .byte   0x10# DW_OP_const1u
+   .byte   0xc8
.byte   0x2e# DW_OP_ne
.byte   0x28# DW_OP_bra
.value  0x1

and save 2 bytes instead.  But if it would be /=//= signed comparison
instead, I think comparing in most significant bits is still shorter.

BTW, self isn't inlined, it is tail recursion optimized.


[Bug c++/49673] [C++0x] const variables initialised with constexpr constructor placed in .data not .rodata

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49673

--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-07-08 
14:24:17 UTC ---
Author: jason
Date: Fri Jul  8 14:24:14 2011
New Revision: 176045

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176045
Log:
PR c++/49673
gcc/c-family/
* c-common.c (c_apply_type_quals_to_decl): Don't check
TYPE_NEEDS_CONSTRUCTING.
gcc/cp/
* typeck.c (cp_apply_type_quals_to_decl): Don't check
TYPE_NEEDS_CONSTRUCTING.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-rom.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/49673] [C++0x] const variables initialised with constexpr constructor placed in .data not .rodata

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49673

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-07-08 
14:28:32 UTC ---
Fixed for 4.7.


[Bug debug/49676] inefficiency: DW_AT_GNU_call_site_value calculates everything 32

2011-07-08 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49676

Jan Kratochvil jan.kratochvil at redhat dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Jan Kratochvil jan.kratochvil at redhat dot com 
2011-07-08 14:40:54 UTC ---
Therefore
  func (int i)
is correct to call with value 1 as:
  movq $0xdeaddead0001, %rdi
I did not realize.  Thanks for the explanation.

DW_OP_shl vs. DW_OP_and inefficiency I would not file.


[Bug target/48454] gfortran.dg/char_result_13.f90 fails with -O3 -funroll-loops -mvectorize-with-neon-quad

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48454

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
Version|unknown |4.6.0
 Resolution||FIXED
   Target Milestone|--- |4.6.1

--- Comment #8 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-07-08 
14:52:17 UTC ---
This was fixed in 4.6.1 . 

Ramana


[Bug c++/45697] __restrict__ inconsistent in presence of typedefs

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45697

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |SUSPENDED
 CC||jason at gcc dot gnu.org

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-07-08 
14:53:33 UTC ---
C++ ignores inappropriate cv-qualifications introduced through the use of a
typedef or template type parameter:

int i;
typedef int IR;
IR const ir1 = i; // OK
int const ir2 = i; // error

G++ is treating restrict the same way.  It's not clear to me that this is the
right thing to do, but it's not clear that it's wrong, either.


[Bug lto/49677] New: GCC 4.6.0 LTO files not compatible with GCC 4.6.1

2011-07-08 Thread edwintorok at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49677

   Summary: GCC 4.6.0 LTO files not compatible with GCC 4.6.1
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: edwinto...@gmail.com


Created attachment 24714
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24714
test.o

Using gcc 4.6.1 to link objects compiled with GCC 4.6.0 -flto produces this
error:
$ gcc test.o -flto -shared
lto1: error: bad value (generic) for -mtls-dialect= switch
lto-wrapper: /usr/bin/gcc returned 1 exit status
/usr/bin/ld: lto-wrapper failed
collect2: ld returned 1 exit status

There is no -mtls-dialect=generic flag, (and there wasn't either).
Instead there is an -mtune=generic flag:
COLLECT_GCC_OPTIONS='-flto' '-shared' '-v' '-mtune=generic' '-march=x86-64'

I think 4.6.1 confuses -mtune and -mtls-dialect when loading 4.6.0 LTO objects.
Maybe the LTO version should be bumped to make these objects incompatible?

Fixing this compile error is possible if:
 - make clean in all the projects that you link in
 - ccache -C, ccache -c to delete all cached objects from previous version

It'd be better if GCC automatically detected that a certain LTO object file is
not compatible, and say which one it is.

In any case it'd be useful if there would be a -Wlto-mismatch, that would warn
if LTO objects were produced with different GCC versions (.comment section
should contain full version), or if the LTO objects and current compiler
version are different.

gcc -v output:
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-2'
--with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-multiarch
--with-multiarch-defaults=x86_64-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/x86_64-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/x86_64-linux-gnu
--enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc
--with-arch-32=i586 --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.6.1 (Debian 4.6.1-2) 

I'm attaching the test.o file, because it the bug doesn't reproduce if I
compile it again from source with 4.6.1, only if I use the object file compiled
by 4.6.0.


[Bug c++/45697] __restrict__ inconsistent in presence of typedefs

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45697

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org 2011-07-08 
14:57:52 UTC ---
Created attachment 24715
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24715
patch

But here's a patch against pre-4.7 to do what you want.


[Bug rtl-optimization/49169] ARM: optimisations strip the Thumb/ARM mode bit off function pointers

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49169

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.08 15:04:22
 CC||ramana at gcc dot gnu.org
 Ever Confirmed|0   |1


[Bug target/42894] [4.5 Regression] Invalid rtl sharing in Thumb1.

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42894

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org

--- Comment #25 from Ramana Radhakrishnan ramana at gcc dot gnu.org 
2011-07-08 15:28:08 UTC ---
Jakub,

While this fixes it for 4.6 should this also be backported to the 4.5 branch ?

Ramana


[Bug debug/49676] inefficiency: DW_AT_GNU_call_site_value calculates everything 32

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49676

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
15:31:38 UTC ---
Created attachment 24716
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24716
gcc47-pr49676.patch

Attached patch saves those 2 bytes.

To answer the general question, for  DWARF2_ADDR_SIZE size types entry_value
is just untyped, and assuming whether it is signed or unsigned is error-prone,
especially if it is in another CU where we can't check it.
In some ABIs the registers in which stuff is passed are sign-extended or
zero-extended, on other ABIs they may contain garbage in the upper bits, in
other ABIs it is a mess (e.g. x86_64 unfortunately).


[Bug target/42894] [4.5 Regression] Invalid rtl sharing in Thumb1.

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42894

--- Comment #26 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
15:35:01 UTC ---
It could, but I don't have time to do it myself.  So, if somebody goes ahead
and tests the backport, fine.


[Bug libstdc++/49559] [C++0x] stable_sort calls self-move-assignment operator

2011-07-08 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49559

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

  Attachment #24613|0   |1
is obsolete||

--- Comment #18 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-08 
15:46:35 UTC ---
Created attachment 24717
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24717
Draft patch, passes testing.

This is what I have so far. Looks pretty good to me.


[Bug middle-end/43460] internal compiler error: Segmentation fault on __builtin_unreachable() after asm goto()

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43460

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||ramana at gcc dot gnu.org
 Resolution||DUPLICATE

--- Comment #3 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-07-08 
16:09:06 UTC ---
This looks like a DUP of PR44071 and I can confirm that this testcase doesn't
ICE any more on the 4.5 branch 

Ramana

*** This bug has been marked as a duplicate of bug 44071 ***


[Bug middle-end/44071] ICE with asm goto and __builtin_unreachable()

2011-07-08 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44071

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mirq-gccboogs at rere dot
   ||qmqm.pl

--- Comment #14 from Ramana Radhakrishnan ramana at gcc dot gnu.org 
2011-07-08 16:09:06 UTC ---
*** Bug 43460 has been marked as a duplicate of this bug. ***


[Bug target/49678] New: scan for mov fails in gcc.target/arm/pr42575.c

2011-07-08 Thread janis at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49678

   Summary: scan for mov fails in gcc.target/arm/pr42575.c
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org


Test gcc.target/arm/pr42575.c was added on 2010-08-18 in r163334.  The scan for
no mov started failing a few days later with:

  r163601 | bernds | 2010-08-27 22:11:50 + (Fri, 27 Aug 2010)

The test specifies -march=armv7-a, which is overridden for multilibs that
specify -march=, but it fails even for the default multilib.  It passes for a
few multilibs.  Here are results for the scan for current trunk with the
multilibs I've been using for compile-only tests, in case that provides useful
clues:

  default: FAIL
  march_armv4t: FAIL
  march_armv5: FAIL
  march_armv5te: FAIL
  march_armv5te-mfloat-abi_softfp: FAIL
  march_armv5te-mfloat-abi_softfp-mbig-endian: FAIL
  march_armv5t: FAIL
  march_armv6: FAIL
  march_armv6j: FAIL
  march_armv6t2: PASS
  march_armv6z: PASS
  march_armv6zk: PASS
  march_armv7-a: FAIL
  march_armv7-a-mfloat-abi_hard-mfpu_neon: FAIL
  march_armv7-a-mfloat-abi_softfp-mfpu_neon: FAIL
  march_armv7-r: FAIL
  march_iwmmxt2: FAIL
  march_iwmmxt: FAIL
  mbig-endian: FAIL
  mcpu_xscale: PASS
  mfloat-abi_soft-mfpu_neon-fp16: FAIL
  mfloat-abi_soft-mfpu_vfpv3xd-fp16: FAIL
  mfpu_vfpv4: FAIL
  mthumb: PASS
  mthumb-march_armv4t: PASS
  mthumb-march_armv5te: PASS
  mthumb-march_armv5t: PASS
  mthumb-march_armv6: PASS
  mthumb-march_armv6j: PASS
  mthumb-march_armv6-m: PASS
  mthumb-march_armv6t2: PASS
  mthumb-march_armv6z: PASS
  mthumb-march_armv6zk: PASS
  mthumb-march_armv7-a: PASS
  mthumb-march_armv7: PASS
  mthumb-march_armv7-mfix-cortex-m3-ldrd: PASS
  mthumb-march_armv7-m: PASS
  mthumb-march_armv7-r: FAIL
  mthumb-march_iwmmxt2: PASS
  mthumb-march_iwmmxt: PASS
  mthumb-mcpu_cortex-a8: PASS

With the 4.6 branch the only difference is that mcpu_xscale fails.


[Bug target/20020] x86_64 - 128 bit structs not targeted to TImode

2011-07-08 Thread gary at intrepid dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020

--- Comment #9 from Gary Funck gary at intrepid dot com 2011-07-08 16:20:50 
UTC ---


This note is both a ping for this rather old bug report, as well as a follow up
with some additional information.

For the ping side of things, we have been using this patch for the past 5/so
years in GCC/UPC without problems (in both the build 'gcc' and 'upc'
compilers).

+++ ./gcc/config/i386/i386.hWed Jul  6 10:11:16 2011
@@ -1755,6 +1755,10 @@
 #define BRANCH_COST(speed_p, predictable_p) \
   (!(speed_p) ? 2 : (predictable_p) ? 0 : ix86_branch_cost)

+/* An integer expression for the size in bits of the largest integer machine
+   mode that should actually be used.  We allow pairs of registers.  */
+#define MAX_FIXED_MODE_SIZE GET_MODE_BITSIZE (TARGET_64BIT ? TImode : DImode)
+
 /* Define this macro as a C expression which is nonzero if accessing
less than a word of memory (i.e. a `char' or a `short') is no
faster than accessing a word of memory, i.e., if such access

Although I haven't run any benchmarks, I think that this patch will improve
performance for some applications (that make use of 128 bit structures), and
recommend that it be applied to the GCC trunk.

Recently, however, we ran the torture tests against the 'gcc' built from the
GUPC branch with those built from the trunk (checks enabled and bootstrap
disabled, CFLAGS='-O0 -g').  We found a regression.  This test produced an ICE:

FAIL: tmpdir-gcc.dg-struct-layout-1/t001 c_compat_x_tst.o compile, (internal
compiler error)
FAIL: tmpdir-gcc.dg-struct-layout-1/t001 c_compat_y_tst.o compile, (internal
compiler error)

This can be reproduced with the following command, run in the built 'gcc'
directory:
make check-gcc RUNTESTFLAGS=struct-layout-1.exp=*t001*

The following is a boiled down test case:

union S160
{
  long double a;
};
union S160 s160;
extern union S160 a160[5];
extern union S160 check160 (union S160, union S160 *, union S160);
extern void checkx160 (union S160);
void
test160 (void)
{
  checkx160 (check160 (s160, a160[1], a160[2]));
}

The assertion check occurred at line 3097 below:

 0x006390fe in expand_call (exp=0x714a51e0, target=0x7107b980,
ignore=0) at gcc/calls.c:3097
3097  gcc_assert (GET_MODE (target) == pmode);
(gdb) p pmode
$1 = TImode
(gdb) l
3092  enum machine_mode pmode;
3093
3094  /* Ensure we promote as expected, and get the new
unsignedness.  */
3095  pmode = promote_function_mode (type, TYPE_MODE (type),
unsignedp,
3096 funtype, 1);
3097  gcc_assert (GET_MODE (target) == pmode);
3098
3099  if ((WORDS_BIG_ENDIAN || BYTES_BIG_ENDIAN)
3100   (GET_MODE_SIZE (GET_MODE (target))
3101   GET_MODE_SIZE (TYPE_MODE (type
(gdb) p GET_MODE (target)
$2 = XFmode
(gdb) p expand_location(input_location)-file
$3 = 0x1ab5b40 gcc/testsuite/gcc/gcc.dg-struct-layout-1/t001_test.h
(gdb) p expand_location(input_location)-line
$4 = 161

The gist of what happens here is:
1) Because of the change in the definition of MAX_FIXED_MODE_SIZE, the compiler
assigned TImode (rather than BLKmode) as the mode for the union type (it
contains only a single field, a long double, of mode XFmode).
2) The expand_call logic decided that the target mode of the value to be
returned is equal to that of the first (and only) field: XFmode.
3) The assertion (GET_MODE (target) == pmode) fails.

As far as we know, this is the only (x86_64) failure introduced by the
MAX_FIXED_MODE_SIZE patch.  It seems that the logic in expand_call() will need
to be adjusted to handle this test case, if the patch is applied.


[Bug libstdc++/49559] [C++0x] stable_sort calls self-move-assignment operator

2011-07-08 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49559

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

  Attachment #24717|0   |1
is obsolete||

--- Comment #19 from Paolo Carlini paolo.carlini at oracle dot com 2011-07-08 
16:20:59 UTC ---
Created attachment 24718
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24718
Slightly better, testcases fixed.


[Bug target/49678] scan for mov fails in gcc.target/arm/pr42575.c

2011-07-08 Thread rearnsha at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49678

Richard Earnshaw rearnsha at gcc dot gnu.org changed:

   What|Removed |Added

 Target||arm
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.08 16:47:18
 CC||rearnsha at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Earnshaw rearnsha at gcc dot gnu.org 2011-07-08 
16:47:18 UTC ---
I think the problem here is that sched1 is re-arranging the insns in a way that
makes register allocation without using a mov pretty much impossible.  Running
the test at -Os seems to work because the code reorg doesn't happen.

However, looking at the code generated after sched1 has run doesn't seem to be
any better than before (indeed it often looks worse); but I'm not sure yet why
this happens.


[Bug target/20020] x86_64 - 128 bit structs not targeted to TImode

2011-07-08 Thread gary at intrepid dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020

--- Comment #10 from Gary Funck gary at intrepid dot com 2011-07-08 16:58:55 
UTC ---
Note: I don't know how this fix fits in with the x86_64 ABI, and obviously once
this fix is in place, the binary call interface will change for 128 bit
struct/union arguments.  As noted in the previous reply, expand_call tried
passing the argument (of TImode) in an XFmode (SSE) register.  That may or may
not be permitted by the call ABI.


[Bug target/20020] x86_64 - 128 bit structs not targeted to TImode

2011-07-08 Thread gary at intrepid dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20020

--- Comment #11 from Gary Funck gary at intrepid dot com 2011-07-08 17:20:32 
UTC ---
(In reply to comment #10)
 Note: I don't know how this fix fits in with the x86_64 ABI, and obviously 
 once
 this fix is in place, the binary call interface will change for 128 bit
 struct/union arguments.

Actually, the call ABI can be preserved, and this fix/improvement can still be
made in order to gain some potential benefit in copying struct's and perhaps
accessing their fields.  The main reason we made the fix however, was to insure
that 128 arguments (and function return values) fit into TImode registers on
x86_64 targets.


[Bug c++/45603] crash in build_addr_func

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45603

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||jason at gcc dot gnu.org
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |


[Bug c++/45603] crash in build_addr_func

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45603

--- Comment #12 from Jason Merrill jason at gcc dot gnu.org 2011-07-08 
17:39:23 UTC ---
Author: jason
Date: Fri Jul  8 17:39:17 2011
New Revision: 176054

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176054
Log:
PR c++/45603
* decl.c (expand_static_init): Don't get confused by user
declaration of __cxa_guard_acquire.

Added:
trunk/gcc/testsuite/g++.dg/abi/guard3.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/decl.c
trunk/gcc/testsuite/ChangeLog


[Bug target/46779] wrong code generation for array access

2011-07-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779

--- Comment #11 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-07-08 
17:38:43 UTC ---
Author: gjl
Date: Fri Jul  8 17:38:39 2011
New Revision: 176053

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176053
Log:

PR target/46779
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
In particular, allow 8-bit values in r28 and r29.
(avr_hard_regno_scratch_ok): Disallow any register that might be
part of the frame pointer.
(avr_hard_regno_rename_ok): Same.
(avr_legitimate_address_p): Don't allow SUBREGs.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/avr/avr.c


[Bug c++/45603] crash in build_addr_func

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45603

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #13 from Jason Merrill jason at gcc dot gnu.org 2011-07-08 
17:39:54 UTC ---
Fixed for 4.7.


[Bug target/46779] wrong code generation for array access

2011-07-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779

--- Comment #12 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-07-08 
17:46:42 UTC ---
Author: gjl
Date: Fri Jul  8 17:46:38 2011
New Revision: 176055

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176055
Log:

PR target/46779
Backport from mainline SVN 176053.
2011-07-08  Georg-Johann Lay
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
In particular, allow 8-bit values in r28 and r29.
(avr_hard_regno_scratch_ok): Disallow any register that might be
part of the frame pointer.
(avr_hard_regno_rename_ok): Same.
(avr_legitimate_address_p): Don't allow SUBREGs.


Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/avr/avr.c


[Bug target/45291] avr miscompilations related to frame pointer registers

2011-07-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45291

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE
   Target Milestone|--- |4.6.2

--- Comment #4 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-07-08 
17:52:08 UTC ---
This is same artifact as PR46779: IRA generates subreg of hard-reg that's not
handled by reload.

*** This bug has been marked as a duplicate of bug 46779 ***


[Bug c++/49679] New: Increment/decrement operator (++/--) not working as expected

2011-07-08 Thread jordan_2000 at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49679

   Summary: Increment/decrement operator (++/--) not working as
expected
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jordan_2...@hotmail.de


#include cstdlib

#include iostream



using namespace std;



int main(int argc, char *argv[])

{

int a=2;

int b=2;

a+=++a+a++;
b+=++b+b++;
cout  a=  a  endl  b=  b  endl;

cin  a;
return EXIT_SUCCESS;

}


result

a=4
b=10


[Bug target/46779] wrong code generation for array access

2011-07-08 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46779

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||otaylor at redhat dot com

--- Comment #13 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-07-08 
17:52:08 UTC ---
*** Bug 45291 has been marked as a duplicate of this bug. ***


[Bug c++/49679] Increment/decrement operator (++/--) not working as expected

2011-07-08 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49679

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-08 
17:55:35 UTC ---
You are invoking undefined behavior because C++ does not specify what order of
the operands happen first.


[Bug c++/45437] Loses reference during update

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45437

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |


[Bug c++/49679] Increment/decrement operator (++/--) not working as expected

2011-07-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49679

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-07-08 
17:57:09 UTC ---
The code has undefined behaviour because there are no sequence points between
the increments, see http://c-faq.com/expr/seqpoints.html

GCC even warns you:

seq.cc: In function 'int main(int, char**)':
seq.cc:19:15: warning: operation on 'a' may be undefined [-Wsequence-point]
seq.cc:19:15: warning: operation on 'a' may be undefined [-Wsequence-point]
seq.cc:20:15: warning: operation on 'b' may be undefined [-Wsequence-point]
seq.cc:20:15: warning: operation on 'b' may be undefined [-Wsequence-point]

You should use -Wall if the compiler seems to be doing something you don't
understand, it might explain why.


[Bug c++/49679] Increment/decrement operator (++/--) not working as expected

2011-07-08 Thread jordan_2000 at hotmail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49679

--- Comment #3 from Jordan jordan_2000 at hotmail dot de 2011-07-08 18:32:55 
UTC ---
I know the warnings, but look the code


a+=++a+a++;
b+=++b+b++;
cout  a=  a  endl  b=  b  endl;

cin  a;


a and b must be the same.
if i remove

cin  a;

everything is ok.


[Bug c++/49679] Increment/decrement operator (++/--) not working as expected

2011-07-08 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49679

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-07-08 
18:37:41 UTC ---
(In reply to comment #3)
 a and b must be the same.

No, it's undefined behaviour. Anything can happen.

http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html


[Bug bootstrap/49680] New: [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

   Summary: [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in
__register_frame_info_bases
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
CC: r...@gcc.gnu.org, rdsandif...@googlemail.com
  Host: mips-sgi-irix6.5
Target: mips-sgi-irix6.5
 Build: mips-sgi-irix6.5


Between 20110704 (r175811) and 20110708 (r176045), IRIX 6.5 bootstrap got
broken.
A trivial a.out SEGVs in __register_frame_info_bases:

Program received signal SIGSEGV, Segmentation fault.
__register_frame_info_bases (begin=0x10004604, ob=0x1000, tbase=0x0, 
dbase=0x0) at /vol/gcc/src/hg/trunk/irix/libgcc/unwind-dw2-fde.c:80
80ob-pc_begin = (void *)-1;
(gdb) where
#0  __register_frame_info_bases (begin=0x10004604, ob=0x1000, tbase=0x0, 
dbase=0x0) at /vol/gcc/src/hg/trunk/irix/libgcc/unwind-dw2-fde.c:80
#1  0x100014a0 in ?? ()
#2  0x100014a0 in ?? ()
Backtrace stopped: frame did not save the PC

I could trace this down to some change to crtbegin.o.  I found that a couple
of .set macro/.set reorder and .set noreorder/.set .nomacro pairs got lost,
which causes gas warnings:

crtstuff.s: Assembler messages:
crtstuff.s:114: Warning: Macro instruction expanded into multiple instructions
crtstuff.s:115: Warning: Macro instruction expanded into multiple instructions
crtstuff.s:171: Warning: Macro instruction expanded into multiple instructions
crtstuff.s:172: Warning: Macro instruction expanded into multiple instructions

Also, a block of EH info was removed:

-   .byte   0x4  # DW_CFA_advance_loc4
-   .4byte  .LCFI4-.LCFI2
-   .byte   0x90 # DW_CFA_offset, column 0x10
-   .uleb128 0x8
-   .byte   0x5  # DW_CFA_offset_extended
-   .uleb128 0x40
-   .uleb128 0x2

Thus, one of rth's dwarf2cfi patches might be a candidate.

I'm attaching the preprocessed input and good/bad assembler output.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #2 from Rainer Orth ro at gcc dot gnu.org 2011-07-08 19:04:13 UTC 
---
Created attachment 24720
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24720
working assembler output


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #3 from Rainer Orth ro at gcc dot gnu.org 2011-07-08 19:04:45 UTC 
---
Created attachment 24721
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24721
broken assembler output


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #1 from Rainer Orth ro at gcc dot gnu.org 2011-07-08 19:03:37 UTC 
---
Created attachment 24719
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24719
preprocessed input


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug bootstrap/49681] New: 4.6.1 cross-build fails in libquadmath/libiberty

2011-07-08 Thread manuel.lauss at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49681

   Summary: 4.6.1 cross-build fails in libquadmath/libiberty
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: manuel.la...@googlemail.com


cross-building 4.6.1 for mips on x64 fails in stage2 configuration of
libquadmath/libiberty:


checking command to parse
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/nm
output from
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includeobject... failed
checking for dlfcn.h... no
checking for objdir... .libs
checking if
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includesupports -fno-rtti
-fno-exceptions... no
checking for
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includeoption to produce PIC... -fPIC
-DPIC
checking if
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includePIC flag -fPIC -DPIC works...
yes
checking if
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includestatic flag -static works... no
checking if
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includesupports -c -o file.o... yes
checking if
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includesupports -c -o file.o...
(cached) yes
checking whether the
/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/xgcc
-B/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/
-B/usr/mipsel-softfloat-linux-gnu/bin/ -B/usr/mipsel-softfloat-linux-gnu/lib/
-isystem /usr/mipsel-softfloat-linux-gnu/include -isystem
/usr/mipsel-softfloat-linux-gnu/sys-includelinker
(/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build/./gcc/collect-ld)
supports shared libraries... yes
checking dynamic linker characteristics... configure: error: Link tests are not
allowed after GCC_NO_EXECUTABLES.
make[1]: *** [configure-target-libquadmath] Error 1
make[1]: Leaving directory
`/tmp-ram/portage/cross-mipsel-softfloat-linux-gnu/gcc-4.6.1/work/build'
make: *** [all] Error 2


configure --prefix=/usr
--bindir=/usr/x86_64-pc-linux-gnu/mipsel-softfloat-linux-gnu/gcc-bin/4.6.1
--includedir=/usr/lib/gcc/mipsel-softfloat-linux-gnu/4.6.1/include
--datadir=/usr/share/gcc-data/mipsel-softfloat-linux-gnu/4.6.1
--mandir=/usr/share/gcc-data/mipsel-softfloat-linux-gnu/4.6.1/man
--infodir=/usr/share/gcc-data/mipsel-softfloat-linux-gnu/4.6.1/info
--with-gxx-include-dir=/usr/lib/gcc/mipsel-softfloat-linux-gnu/4.6.1/include/g++-v4
--host=x86_64-pc-linux-gnu --target=mipsel-softfloat-linux-gnu
--build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point
--without-ppl --without-cloog --enable-lto --with-float=soft --disable-nls
--with-system-zlib --disable-werror --enable-secureplt --disable-multilib
--disable-libmudflap --disable-libssp --disable-libgomp --enable-cld

[Bug rtl-optimization/49682] New: [alpha] gcc-4.6.1: ICE at -O2 and -O3

2011-07-08 Thread mattst88 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49682

   Summary: [alpha] gcc-4.6.1: ICE at -O2 and -O3
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: matts...@gmail.com


Created attachment 24722
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24722
preprocessed crl.i (from openssl-1.0.0d)

The attached preprocessed file from openssl-1.0.0d causes an internal compiler
error on Alpha with -O2 or -O3 optimization level.

# gcc -O2 -c crl.i 
crl.c: In function crl_main:
crl.c:403:2: internal compiler error: in ready_remove_first, at
haifa-sched.c:1414
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.


[Bug target/49621] [4.5/4.6/4.7 regression] ICE in trunc_int_for_mode, at explow.c:57

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49621

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
20:10:22 UTC ---
Author: jakub
Date: Fri Jul  8 20:10:18 2011
New Revision: 176064

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176064
Log:
PR target/49621
* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
CONST0_RTX (dest_mode) instead of const0_rtx as second operand
of NE.
* config/rs6000/vector.md (vector_select_mode,
vector_select_mode_uns): Change second operand of NE to
CONST0_RTX (MODEmode) instead of const0_rtx.
* config/rs6000/altivec.md (*altivec_vselmode,
*altivec_vselmode_uns): Expect second operand of NE to be
zero_constant of the corresponding vector mode.
* config/rs6000/vsx.md (*vsx_xxselmode, *vsx_xxselmode_uns):
Likewise.

* gcc.target/powerpc/altivec-34.c: New test.

Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.target/powerpc/altivec-34.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/rs6000/altivec.md
branches/gcc-4_6-branch/gcc/config/rs6000/rs6000.c
branches/gcc-4_6-branch/gcc/config/rs6000/vector.md
branches/gcc-4_6-branch/gcc/config/rs6000/vsx.md
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


[Bug target/49621] [4.5/4.6/4.7 regression] ICE in trunc_int_for_mode, at explow.c:57

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49621

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
20:10:16 UTC ---
Author: jakub
Date: Fri Jul  8 20:09:58 2011
New Revision: 176063

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176063
Log:
PR target/49621
* config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
CONST0_RTX (dest_mode) instead of const0_rtx as second operand
of NE.
* config/rs6000/vector.md (vector_select_mode,
vector_select_mode_uns): Change second operand of NE to
CONST0_RTX (MODEmode) instead of const0_rtx.
* config/rs6000/altivec.md (*altivec_vselmode,
*altivec_vselmode_uns): Expect second operand of NE to be
zero_constant of the corresponding vector mode.
* config/rs6000/vsx.md (*vsx_xxselmode, *vsx_xxselmode_uns):
Likewise.

* gcc.target/powerpc/altivec-34.c: New test.

Added:
trunk/gcc/testsuite/gcc.target/powerpc/altivec-34.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/altivec.md
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/config/rs6000/vector.md
trunk/gcc/config/rs6000/vsx.md
trunk/gcc/testsuite/ChangeLog


[Bug target/49621] [4.5 regression] ICE in trunc_int_for_mode, at explow.c:57

2011-07-08 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49621

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.5/4.6/4.7 regression]|[4.5 regression] ICE in
   |ICE in trunc_int_for_mode,  |trunc_int_for_mode, at
   |at explow.c:57  |explow.c:57

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-08 
20:18:30 UTC ---
Fixed for 4.6+ so far.


[Bug target/47230] [4.6/4.7 Regression] gcc fails to bootstrap on alpha in stage2 with relocation truncated to fit: GPREL16 against ...

2011-07-08 Thread mattst88 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47230

Matt Turner mattst88 at gmail dot com changed:

   What|Removed |Added

 CC||mattst88 at gmail dot com

--- Comment #11 from Matt Turner mattst88 at gmail dot com 2011-07-08 
20:42:37 UTC ---
gcc-4.6.1 fails to boostrap gcc-4.6.1 even with binutils-2.21.1 + fixes for
12608 and 12610 for me.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

Hans-Peter Nilsson hp at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hp at gcc dot gnu.org

--- Comment #4 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-07-08 
21:02:53 UTC ---
I see a similar build failure for cris-elf, FWIW so I take a wild guess and
assume it's the same issue.  Narrower revision range; last known working
176012, first known failing r176032.  Build failure:

/tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/xgcc
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/ -nostdinc
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/newlib/ -isystem
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/newlib/targ-include -isystem
/tmp/hpautotest-gcc1/gcc/newlib/libc/include
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libgloss/cris
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libgloss/libnosys
-L/tmp/hpautotest-gcc1/gcc/libgloss/cris
-B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/bin/
-B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/lib/ -isystem
/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/include -isystem
/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/sys-include-g -O2 -march=v10
-mbest-lib-options -O2  -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition  -isystem ./include   -g  -DIN_LIBGCC2 -fbuilding-libgcc
-fno-stack-protector -Dinhibit_libc  -I. -I. -I../../.././gcc
-I/tmp/hpautotest-gcc1/gcc/libgcc -I/tmp/hpautotest-gcc1/gcc/libgcc/.
-I/tmp/hpautotest-gcc1/gcc/libgcc/../gcc
-I/tmp/hpautotest-gcc1/gcc/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o
unwind-dw2-fde.o -MT unwind-dw2-fde.o -MD -MP -MF unwind-dw2-fde.dep
-fexceptions -c /tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-dw2-fde.c 
In file included from
/tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-dw2-fde.c:35:0:
/tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-pe.h: In function
'size_of_encoded_value':
/tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-pe.h:89:1: internal compiler
error: Segmentation fault


[Bug tree-optimization/49513] DOM inhibits if-conversion and vectorization

2011-07-08 Thread law at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49513

Jeffrey A. Law law at redhat dot com changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #4 from Jeffrey A. Law law at redhat dot com 2011-07-08 21:11:09 
UTC ---
Prohibiting this in DOM would effectively prevent DOM from doing any loop
rotations.

I don't see a good way to solve this...  Ideally we'd have a way to know if a
particular IF is convertable and we could avoid threading through it.  

Jeff


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #5 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-07-08 
21:27:01 UTC ---
(In reply to comment #4)
 I see a similar build failure for cris-elf, FWIW so I take a wild guess and
 assume it's the same issue.

...but in the case for cris-elf it seems the immediate cause of the SEGV is the
appearance of notes between the case-insns and the jump-table, which is
probably fixed by using prev_nonnote_insn instead of PREV_INSN in
cris.c:cris_asm_output_case_end.  This may or may not be related to the build
failure in this PR, but I thought better mentioned than not.

(jump_insn 18 17 76 (parallel [
(set (pc)
(if_then_else (ltu (reg:SI 10 r10 [34])
(const_int 5 [0x5]))
(plus:SI (sign_extend:SI (mem:HI (plus:SI (mult:SI (reg:SI
10 r10 [34])
(const_int 2 [0x2]))
(pc)) [0 S2 A8]))
(pc))
(label_ref 30)))
(use (label_ref 19))
]) /tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-pe.h:77 116
{*casesi_adds_w}
 (expr_list:REG_BR_PRED (const_int 12 [0xc])
(expr_list:REG_DEAD (reg:SI 10 r10 [34])
(insn_list:REG_LABEL_TARGET 30 (nil
 - 19)

(note 76 18 74 NOTE_INSN_CFI_LABEL)

(note 74 76 19
.cfi_offset 16, -4
 NOTE_INSN_CFI)

(code_label 19 74 20 36  [1 uses])

(jump_insn 20 19 21 (addr_diff_vec:HI (label_ref:SI 19)
 [
(label_ref:SI 22)
(label_ref:SI 30)
(label_ref:SI 51)
(label_ref:SI 22)
(label_ref:SI 26)
]
(const_int 0 [0])
(const_int 0 [0]))
/tmp/hpautotest-gcc1/gcc/libgcc/../gcc/unwind-pe.h:77 -1
 (expr_list:REG_BR_PRED (const_int 12 [0xc])
(nil)))

This seems like it'd be fixed by using prev_nonnote_insn instead of PREV_INSN
in cris.c:cris_asm_output_case_end, which is where the SEGV is.  This may or
may not be related to the build failure in this PR, but I thought better
mentioned than not.  (No, not the case-table thingy, but maybe notes appearing
where there used to be none.)


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.07.08 21:58:17
 AssignedTo|unassigned at gcc dot   |rth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #6 from Richard Henderson rth at gcc dot gnu.org 2011-07-08 
21:58:17 UTC ---
I see the problem wrt cris -- we really shouldn't delay the output
of the CFI note that late.  I'll fix that and see if I can still
reproduce the irix problem.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #7 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-07-08 
22:08:31 UTC ---
(In reply to comment #6)
 I see the problem wrt cris -- we really shouldn't delay the output
 of the CFI note that late.  I'll fix that and see if I can still
 reproduce the irix problem.

Thanks.  Still, I don't think there's anything wildly wrong with the quoted rtx
so I'm going to do s/PREV_INSN/prev_nonnote_nondebug_insn/g and assert that the
right insns and code_label is seen in cris_asm_output_case_end anyway.  The
current PREV_INSNs are a little too presumptious (QED); there are no documented
promises broken at the SEGV.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #8 from Richard Henderson rth at gcc dot gnu.org 2011-07-08 
22:14:52 UTC ---
I'm pretty sure that tablejumps are required to be adjacent,
and that the notes are Really In the Wrong Place.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #9 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-07-08 
22:30:34 UTC ---
(In reply to comment #8)
 I'm pretty sure that tablejumps are required to be adjacent,
 and that the notes are Really In the Wrong Place.

No real insns are supposed to be there, as in always the last insn before the
jump table it uses (at tablejump, md.texi) but I couldn't find anything in the
docs to throw at you regarding notes. :)  There may be, but not where I looked;
casesi, tablejump and ASM_OUTPUT_CASE_END.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #10 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-07-08 
22:46:42 UTC ---
(In reply to comment #7)
 I'm going to do s/PREV_INSN/prev_nonnote_nondebug_insn/g and assert that the
 right insns and code_label is seen in cris_asm_output_case_end anyway.

And with that fixed, I get assembler errors from crtstuff.s so I'll step back
and wait.

/tmp/ice176012/gccobj/./gcc/xgcc -B/tmp/ice176012/gccobj/./gcc/ -nostdinc
-B/tmp/ice176012/gccobj/cris-elf/newlib/ -isystem
/tmp/ice176012/gccobj/cris-elf/newlib/targ-include -isystem
/tmp/ice176012/gcc/newlib/libc/include
-B/tmp/ice176012/gccobj/cris-elf/libgloss/cris
-L/tmp/ice176012/gccobj/cris-elf/libgloss/libnosys
-L/tmp/ice176012/gcc/libgloss/cris -B/tmp/ice176012/pre/cris-elf/bin/
-B/tmp/ice176012/pre/cris-elf/lib/ -isystem /tmp/ice176012/pre/cris-elf/include
-isystem /tmp/ice176012/pre/cris-elf/sys-include-g -O2 -march=v10
-mbest-lib-options -O2 -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall
-Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition  -isystem ./include  -I. -I. -I/tmp/ice176012/gcc/gcc
-I/tmp/ice176012/gcc/gcc/. -I/tmp/ice176012/gcc/gcc/../include
-I/tmp/ice176012/gcc/gcc/../libcpp/include -I/tmp/ice176012/gccobj/./gmp
-I/tmp/ice176012/gcc/gmp -I/tmp/ice176012/gccobj/./mpfr
-I/tmp/ice176012/gcc/mpfr -I/tmp/ice176012/gcc/mpc/src 
-I/tmp/ice176012/gcc/gcc/../libdecnumber
-I/tmp/ice176012/gcc/gcc/../libdecnumber/dpd -I../libdecnumber-g0
-finhibit-size-directive -fno-inline -fno-exceptions
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize
-fno-stack-protector -Dinhibit_libc -I. -I. -I../../.././gcc
-I/tmp/ice176012/gcc/libgcc -I/tmp/ice176012/gcc/libgcc/.
-I/tmp/ice176012/gcc/libgcc/../gcc -I/tmp/ice176012/gcc/libgcc/../include  -o
crtbegin.o -MT crtbegin.o -MD -MP -MF crtbegin.dep -O2  -g -O2 -DIN_GCC
-DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem
./include   -g  -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector
-Dinhibit_libc -moverride-best-lib-options \
  -c /tmp/ice176012/gcc/libgcc/../gcc/crtstuff.c -DCRT_BEGIN
/tmp/ice176012/gcc/libgcc/../gcc/crtstuff.c:50:0: warning: IN_LIBGCC2
redefined [enabled by default]
command-line:0:0: note: this is the location of the previous definition
/tmp/ice176012/gcc/libgcc/../gcc/crtstuff.c: In function 'frame_dummy':
/tmp/ice176012/gcc/libgcc/../gcc/crtstuff.c:381:19: warning: array subscript is
above array bounds [-Warray-bounds]
/tmp/ccjObd8e.s: Assembler messages:
/tmp/ccjObd8e.s:228: Error: operation combines symbols in different segments
/tmp/ccjObd8e.s:260: Error: operation combines symbols in different segments
make[4]: *** [crtbegin.o] Error 1


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #11 from Richard Henderson rth at gcc dot gnu.org 2011-07-08 
23:03:59 UTC ---
HP, the CRIS problem is something else.

Basically, nonsense like 

static void __attribute__((__used__)) call___do_global_dtors_aux (void) { asm
(\t.section\t.fini); __do_global_dtors_aux (); asm (\t.text); }

only accidentally worked before.  I guess it continues to work
so long as debug info is not enabled.  Please just implement the
CRT_CALL_STATIC_FUNCTION macro for CRIS.

If you still have a problem, open a different bug.

Back to MIPS herein...


[Bug fortran/49683] New: The system cannot execute the specified program

2011-07-08 Thread mgrech at shaw dot ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49683

   Summary: The system cannot execute the specified program
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mgr...@shaw.ca


I have a G77 program called mike.f that works with no issues on my XP machine. 
I installed G77 on my laptop that runs Vista.  I ran a test on mytest1.f and it
works fine, no problems at all.  I then compile my program mike.f on the laptop
and it compiles with no issues.  However when I try to run it I get the
following message:  The system cannot execute the specified program.  How can I
fix this?

Thanks


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #12 from Richard Henderson rth at gcc dot gnu.org 2011-07-08 
23:36:57 UTC ---
Rainer, please give me the command-line for this.  I can't seem to
reproduce the assembler warnings from a cross-compiler.


[Bug middle-end/49519] [4.7 Regression] Revision 175272 miscompiled 447.dealII in SPEC CPU 2006

2011-07-08 Thread janis at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519

Janis Johnson janis at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janis at gcc dot gnu.org

--- Comment #25 from Janis Johnson janis at gcc dot gnu.org 2011-07-08 
23:36:25 UTC ---
Test gcc.target/arm/sibcall-1.c starts failing with r176042 for
arm-none-linux-gnueabi configured with defaults for arch and cpu.  The failure
can be reproduced with a simple cross cc1.


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #14 from Richard Henderson rth at gcc dot gnu.org 2011-07-08 
23:49:01 UTC ---
Author: rth
Date: Fri Jul  8 23:48:59 2011
New Revision: 176066

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176066
Log:
dwarf2cfi: Flush queued saves at the end of the prologue.

There's little point at holding onto these saves indefinitely.

PR bootstrap/49680
* dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
end of the prologue.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2cfi.c


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #13 from Richard Henderson rth at gcc dot gnu.org 2011-07-08 
23:48:56 UTC ---
Author: rth
Date: Fri Jul  8 23:48:53 2011
New Revision: 176065

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176065
Log:
dwarf2cfi: Insert notes correctly wrt tablejumps.

PR bootstrap/49680
* dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
any tablejump vector.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2cfi.c


[Bug bootstrap/49680] [4.7 regression] IRIX 6.5 bootstrap broken: SEGV in __register_frame_info_bases

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49680

--- Comment #15 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-07-09 
00:32:08 UTC ---
(In reply to comment #11)
 Basically, nonsense like 
 
 static void __attribute__((__used__)) call___do_global_dtors_aux (void) { asm
 (\t.section\t.fini); __do_global_dtors_aux (); asm (\t.text); }
 
 only accidentally worked before.  I guess it continues to work
 so long as debug info is not enabled.

So, the documentation for CRT_CALL_STATIC_FUNCTION should be amended something
like this?

Index: tm.texi.in
===
--- tm.texi.in(revision 175272)
+++ tm.texi.in(working copy)
@@ -6878,6 +6880,8 @@ sections.  By default, this macro uses a
 ports need hand-crafted assembly code to avoid dependencies on
 registers initialized in the function prologue or to ensure that
 constant pools don't end up too far way in the text section.
+Also, the default value will not work for targets using DWARF 2
+debugging information.
 @end defmac

 @defmac TARGET_LIBGCC_SDATA_SECTION

I'll take further discussion to gcc-patches@.


[Bug regression/49684] New: [4.7 Regression]: build fails on crtstuff.c / crtbegin using default CRT_CALL_STATIC_FUNCTION

2011-07-08 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49684

   Summary: [4.7 Regression]: build fails on crtstuff.c / crtbegin
using default CRT_CALL_STATIC_FUNCTION
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: build
  Severity: normal
  Priority: P3
 Component: regression
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: h...@gcc.gnu.org
CC: r...@gcc.gnu.org
  Host: x86_64-unknown-linux-gnu
Target: cris-axis-elf


A patch in the revision range last known working 176012, first known failing
r176032, caused the build for cris-elf to fail as described in bug 49680 (first
quote). After the immediate problem is fixed there's a second problem which
seems to be that the default definition of CRT_CALL_STATIC_FUNCTION doesn't
work anymore (messages also quoted in bug 49680), due to a change in the
mentioned range.

A documentation patch is suggested as a general fix.  An alternative would be
to provide a better default definition of CRT_CALL_STATIC_FUNCTION.


[Bug c/49685] New: libgcc_s.so not compiled without optimization when requested

2011-07-08 Thread yuri at tsoft dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49685

   Summary: libgcc_s.so not compiled without optimization when
requested
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: y...@tsoft.com


I need to have libgcc_s.so without optimization and with debug info.
Following documentation on GCC own site
http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html, I ran make with
overriding compilation flags:

make CXXFLAGS='-g3 -fno-inline -O0' CFLAGS='-g3 -fno-inline -O0' all

But the resulting libgcc_s.so is still optimized. I could see that -O 2 was
passed to all compiles.

Actually, gcc build process should respect the given to the top-level make
CFLAGS and CXXFLAGS and propagate them to all levels.


[Bug target/49670] internal compiler error: in extract_insn, at recog.c:2104

2011-07-08 Thread noloader at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49670

--- Comment #10 from Jeffrey Walton noloader at gmail dot com 2011-07-09 
03:32:20 UTC ---
(In reply to comment #8)
 The included source compiles OK for me with:
 
 ~/gcc-build/gcc/cc1plus -quiet -O2 -m32 -g -fstack-protector -march=prescott
 -mtune=prescott --param l1-cache-size=16 --param l1-cache-line-size=64 --param
 l2-cache-size=1024 asn.ii
 
 Tried with:
 GNU C++ (GCC) version 4.5.4 20110525 (prerelease)
 GNU C++ (GCC) version 4.6.1 20110611 (prerelease)
 GNU C++ (GCC) version 4.7.0 20110707 (experimental)
 
 The bug is either fixed or local to:
 
 g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
 
 Please try to reproduce the bug with latest FSF compiler. Alternatively, 
 please
 report the bug to Ubuntu.
I just tried using Fedora 15, which offers GCC 4.6 - OK.

Jeff

[jeffrey@studio cryptopp]$ gcc --version
gcc (GCC) 4.6.0 20110530 (Red Hat 4.6.0-9)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[jeffrey@studio cryptopp]$ make
g++ -DNDEBUG -g -O2 -march=native -pipe -c cryptlib_bds.cpp
g++ -DNDEBUG -g -O2 -march=native -pipe -c hmac.cpp
g++ -DNDEBUG -g -O2 -march=native -pipe -c hex.cpp
g++ -DNDEBUG -g -O2 -march=native -pipe -c esign.cpp
...
g++ -DNDEBUG -g -O2 -march=native -pipe -c asn.cpp
g++ -DNDEBUG -g -O2 -march=native -pipe -c rw.cpp
g++ -DNDEBUG -g -O2 -march=native -pipe -c cast.cpp
g++ -DNDEBUG -g -O2 -march=native -pipe -c tiger.cpp
...


[Bug c++/45437] Loses reference during update

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45437

--- Comment #17 from Jason Merrill jason at gcc dot gnu.org 2011-07-09 
03:33:56 UTC ---
Author: jason
Date: Sat Jul  9 03:33:54 2011
New Revision: 176072

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176072
Log:
PR c++/45437
gcc/
* gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
compound assignment.
gcc/c-family/
* c-omp.c (check_omp_for_incr_expr): Handle preevaluation.
gcc/cp/
* typeck.c (cp_build_modify_expr): Preevaluate RHS.

Added:
trunk/gcc/testsuite/g++.dg/expr/compound-asn1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-omp.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/typeck.c
trunk/gcc/gimplify.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/warn/sequence-pt-1.C


[Bug c++/45437] Loses reference during update

2011-07-08 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45437

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #18 from Jason Merrill jason at gcc dot gnu.org 2011-07-09 
03:34:53 UTC ---
Fixed for 4.7.0.