[Bug c++/50671] New: NSDMI not parsed correctly for multiple-data-member declarations

2011-10-09 Thread miles at gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50671

 Bug #: 50671
   Summary: NSDMI not parsed correctly for multiple-data-member
declarations
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mi...@gnu.org


The new NSDMI support seems to work generally, but the following gives a syntax
error:

   struct X { int i = 3, j = 4; };

$ g++-snapshot -c -std=c++0x i.cc
i.cc:1:21: error: expected ';' before ',' token

It certainly seems like this _should_ be valid code, and the clang trunk
compiles it fine.

If I split the declaration, like struct X { int i = 3; int j = 4; }, gcc
compiles it as expected.

$ g++-snapshot --version
g++ (Debian 20111008-1) 4.7.0 20111008 (experimental) [trunk revision 179709]

Thanks,

-miles


[Bug tree-optimization/50622] [4.7 Regression] ICE: verify_gimple failed for std::complexdouble

2011-10-09 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50622

vincenzo Innocente vincenzo.innocente at cern dot ch changed:

   What|Removed |Added

   Severity|normal  |blocker

--- Comment #4 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2011-10-09 08:40:07 UTC ---
reduced to this (no std)

typedef __complex__ double Value;
struct LorentzVector
{
  LorentzVector  operator+=(const LorentzVector  a) {
theX += a.theX;
theY += a.theY;
theZ += a.theZ;
theT += a.theT;
return *this;
  }

  Value theX;
  Value theY;
  Value theZ;
  Value theT;
};

inline LorentzVector
operator+(LorentzVector a, const LorentzVector  b) {
  return a += b;
}

Value ex, et;
LorentzVector sum() {
  LorentzVector v1; v1.theX =ex; v1.theY =ex+et; v1.theZ =ex-et;   v1.theT =et;
  return v1+v1;
}

c++ -O2 -c ice47c.cc
ice47c.cc: In function ‘LorentzVector sum()’:
ice47c.cc:24:15: error: invalid rhs for gimple memory store
a$theX

v1$theX

# .MEM_53 = VDEF .MEM_13
a$theX = v1$theX;

ice47c.cc:24:15: error: invalid rhs for gimple memory store
a$theY

v1$theY

# .MEM_54 = VDEF .MEM_53
a$theY = v1$theY;

ice47c.cc:24:15: error: invalid rhs for gimple memory store
a$theZ

v1$theZ

# .MEM_55 = VDEF .MEM_54
a$theZ = v1$theZ;

ice47c.cc:24:15: error: invalid rhs for gimple memory store
a$theT

v1$theT

# .MEM_56 = VDEF .MEM_55
a$theT = v1$theT;

ice47c.cc:24:15: internal compiler error: verify_gimple failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug c++/50671] [C++0x] NSDMI not parsed correctly for multiple-data-member declarations

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50671

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
09:15:17 UTC ---
Duplicate.

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


[Bug c++/50563] [C++0x] Weird syntax acceptance rules for non-static data members initialized in place

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50563

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||miles at gnu dot org

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
09:15:17 UTC ---
*** Bug 50671 has been marked as a duplicate of this bug. ***


[Bug target/50603] [x32] Unnecessary lea

2011-10-09 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50603

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Target||x32
 Status|UNCONFIRMED |RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-10/msg00547.htm
   ||l
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #8 from Uros Bizjak ubizjak at gmail dot com 2011-10-09 09:30:09 
UTC ---
(In reply to comment #6)
 It doesn't work since we fail to decompose subreg.

The question here is, why combine creates:

Failed to match this instruction:
(set (mem:SI (and:DI (plus:DI (subreg:DI (mult:SI (reg/v:SI 85 [ i ])
(const_int 4 [0x4])) 0)
(subreg:DI (reg:SI 106) 0))
(const_int 4294967292 [0xfffc])) [0 MEM[symbol: x, index:
D.2741_1, step: 4, offset: 4294967292B]+0 S4 A32])
(reg/v:SI 85 [ i ]))

Considering that this is in fact zero-extension, the optimized pattern is
worse than sticking subreg to the whole address, i.e.

(and:DI (subreg:DI (plus:SI (mult:SI (reg/v:SI 85 [ i ]) (const_int 4 [0x4]))
(reg:SI 106)) 0)
(const_int 4294967295 [0x]))

Please note that we have registers in two different modes in the former
pattern. The later pattern would be recognized by i386.c code.

Anyway, the original problem is solved, instead of hijacking exisiting PR,
please open a new PR (IMO, RTL optimization).


[Bug fortran/43829] Scalarization of reductions

2011-10-09 Thread paul.richard.thomas at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43829

--- Comment #44 from paul.richard.thomas at gmail dot com paul.richard.thomas 
at gmail dot com 2011-10-09 09:48:00 UTC ---
Dear Mikael,

I have duly loaded up your patch - it looks very slick and
professional; it even works as intended!



 This is included in the patch in comment #41. Unfortunately, it makes the test
 (comment #42) fail with -Os in the testsuite. I don't know yet how I will
 handle it. I would like to avoid forcing one optimization level if possible.
 Any idea?

I confirm you finding:

FAIL: gfortran.dg/function_optimize_7.f90  -O  scan-tree-dump-times
original sum_r4 1
FAIL: gfortran.dg/inline_sum_1.f90  -Os  (test for excess errors)
FAIL: gfortran.dg/select_type_12.f03  -O  (internal compiler error)
FAIL: gfortran.dg/select_type_12.f03  -O  (test for excess errors)
Running /svn/trunk/gcc/testsuite/gfortran.dg/gomp/gomp.exp ...
Running /svn/trunk/gcc/testsuite/gfortran.dg/graphite/graphite.exp ...
Running /svn/trunk/gcc/testsuite/gfortran.dg/guality/guality.exp ...
Running /svn/trunk/gcc/testsuite/gfortran.dg/lto/lto.exp ...
Running /svn/trunk/gcc/testsuite/gfortran.dg/vect/vect.exp ...
Running /svn/trunk/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
...
Running /svn/trunk/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
...
FAIL: gfortran.fortran-torture/execute/entry_4.f90 execution,  -O2
FAIL: gfortran.fortran-torture/execute/entry_4.f90 execution,  -O2
-fomit-frame-pointer -finline-functions
FAIL: gfortran.fortran-torture/execute/entry_4.f90 execution,  -O2
-fomit-frame-pointer -finline-functions -funroll-loops
FAIL: gfortran.fortran-torture/execute/entry_4.f90 execution,  -O2
-fbounds-check
FAIL: gfortran.fortran-torture/execute/entry_4.f90 execution,  -O3 -g
FAIL: gfortran.fortran-torture/execute/entry_4.f90 execution, -O2
-ftree-vectorize -msse2

The function_optimize_7.f90 failure is obviously trivial.  Both the
select_type_12.f03 and the entry_4.f90 failures have crept in during
the last few days and appear to be some middle-end fault.

As for your inline_sum_1.f90:  The failure here is dues to extra
temporary array warnings with -Os.  I tried switching on and off the
extra optimizations in Os versus O2 but could not identify the
culprit.  That said, the test runs correctly with -Os.

What I would do is to double up the test; one with { dg-do compile }
and -Warray-temporaries and trhe other with { dg-do run } only.

Cheers

Paul


[Bug c++/50672] New: ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

 Bug #: 50672
   Summary: ice: verify_ssa failed: no immediate_use list
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dcb...@hotmail.com


Created attachment 25448
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25448
C++ source code

I just tried to compile the ddd-3.3.12 package on latest trunk snapshot 
20111008 on an AMD x86_64 box.

The compiler said

ArcGraphE.C: In member function 'void ArcGraphEdge::makeLine(Widget, const
BoxRegion, std::ostream, const GraphGC) const':
ArcGraphE.C:97:6: error: no immediate_use list
for SSA_NAME: .MEM_986 in statement:
# .MEM_597 = VDEF .MEM_986
LineGraphEdge::drawLine (D.34902_152, w_151(D), exposed_153(D), gc_154(D));
ArcGraphE.C:97:6: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Preprocessed source code attached. Flag -O2 required.


[Bug c++/50660] warning about pass NULL to non pointer argument happens twice for template function call

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50660

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
10:20:24 UTC ---
On it.


[Bug libobjc/49883] clang + gcc 4.6 runtime = broken

2011-10-09 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49883

--- Comment #2 from Nicola Pero nicola at gcc dot gnu.org 2011-10-09 10:29:54 
UTC ---
Author: nicola
Date: Sun Oct  9 10:29:50 2011
New Revision: 179721

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179721
Log:
In libobjc/:
2011-10-09  Nicola Pero  nicola.p...@meta-innovation.com

PR libobjc/49883
* init.c (__objc_exec_class): Work around a bug in clang's code
generation.  Clang sets the class-info field to values different
from 0x1 or 0x2 (the only allowed values in the traditional GNU
Objective-C runtime ABI) to store some additional information, but
this breaks backwards compatibility.  Wipe out all the bits in the
fields other than the first two upon loading a class.

2011-10-09  Nicola Pero  nicola.p...@meta-innovation.com

* class.c (objc_lookup_class): Added back for compatibility with
clang which seems to emit calls to it.

Modified:
trunk/libobjc/ChangeLog
trunk/libobjc/class.c
trunk/libobjc/init.c


[Bug libobjc/49883] clang + gcc 4.6 runtime = broken

2011-10-09 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49883

Nicola Pero nicola at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #3 from Nicola Pero nicola at gcc dot gnu.org 2011-10-09 10:31:04 
UTC ---
Fixed in trunk.

Thanks


[Bug c++/50660] warning about pass NULL to non pointer argument happens twice

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50660

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

Summary|warning about pass NULL to  |warning about pass NULL to
   |non pointer argument|non pointer argument
   |happens twice for template  |happens twice
   |function call   |

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
10:42:19 UTC ---
Note, happens twice also for non-template:

int g(const int);
int m2()
{
  return g(__null);
}


[Bug libobjc/50003] -[Protocol respondsTo:] does not work with Clang

2011-10-09 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50003

Nicola Pero nicola at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME

--- Comment #1 from Nicola Pero nicola at gcc dot gnu.org 2011-10-09 10:47:11 
UTC ---
With GCC trunk (pre-4.7.0), the code reported can't be used because it's using
the Traditional Objective-C runtime API and not the Modern one.

The right implementation  with the Modern API is:

+ (BOOL)conformsToProtocol: (Protocol*)protocol
{
  Class c;

  for (c = self; c != Nil; c = class_getSuperclass (c))
if (class_conformsToProtocol (c, protocol))
  return YES;

  return NO;
}

I tested this with both GCC and clang, and it seems to work fine with both.

Thanks


[Bug libobjc/50368] Implicit, precision losing cast in objc/objc-api.h

2011-10-09 Thread nicola at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50368

Nicola Pero nicola at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||nicola at gcc dot gnu.org
 Resolution||FIXED

--- Comment #1 from Nicola Pero nicola at gcc dot gnu.org 2011-10-09 10:50:47 
UTC ---
Florian,

thanks a lot for your report.  You are right that there is a loss-precision
cast in there. :-)

But the function class_get_version() was part of the Traditional API, which was 
deprecated in GCC 4.6.1 and has been removed in trunk (ie, GCC 4.7.0).

So, the function class_get_version() (and the entire file objc/objc-api.h) will 
no longer exist in GCC 4.7.0, which implicitly fixes your problem. :-)

Thanks again!


[Bug libfortran/50673] New: very slow I/O with trailing spaces

2011-10-09 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50673

 Bug #: 50673
   Summary: very slow I/O with trailing spaces
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: joost.vandevond...@pci.uzh.ch


The following testcase (derived from CP2K, which required 20min to read a 600Mb
file) is about 100x times slower with gfortran than with ifort (12.0.4)

CHARACTER(LEN=40480) :: line=O 0.12456789 0.123456789 0.123456789
CHARACTER(LEN=2) :: AA
REAL*8 :: vec(3)
DO i=1,1
   read(line,*) AA,vec
ENDDO
END

The issue seems related to how efficient the trailing spaces are handled in
both compilers. 4.7 is a bit (20%) slower than 4.3, but nothing fundamental.

Profiling the code shows that most time is spent in next_char, mem_read,
memcpy, eat_spaces.


[Bug fortran/50659] [4.4/4.5/4.6/4.7 Regression] [F03] ICE with PROCEDURE statement

2011-10-09 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50659

--- Comment #12 from janus at gcc dot gnu.org 2011-10-09 11:34:25 UTC ---
Author: janus
Date: Sun Oct  9 11:34:21 2011
New Revision: 179723

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179723
Log:
2011-10-09  Janus Weil  ja...@gcc.gnu.org

PR fortran/50659
* expr.c (replace_symbol): Only do replacement if the symbol is a dummy.

2011-10-09  Janus Weil  ja...@gcc.gnu.org

PR fortran/50659
* gfortran.dg/proc_decl_27.f90: New.

Added:
trunk/gcc/testsuite/gfortran.dg/proc_decl_27.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/expr.c
trunk/gcc/testsuite/ChangeLog


[Bug c/50669] no warning for unused globals

2011-10-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50669

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-09 
11:38:34 UTC ---
The variable is exported, so it is not known to be unused.


[Bug lto/50666] bad error reporting for TMPDIR full

2011-10-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50666

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-09
 CC||rguenth at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-09 
11:40:30 UTC ---
Confirmed.  collect2 has similar issues.


[Bug bootstrap/50665] [4.7 Regression] Bootstrap failure

2011-10-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50665

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug middle-end/50667] [4.7 Regression] FAIL: gcc.c-torture/execute/vshuf-* on powerpc-apple-darwin9

2011-10-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50667

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-09 
11:41:21 UTC ---
Looks like a dup of PR50665.


[Bug bootstrap/50674] New: [4.7 Regression] profiledbootstrap broken: corrupted profile info: sum_all is smaller than sum_max

2011-10-09 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50674

 Bug #: 50674
   Summary: [4.7 Regression]  profiledbootstrap broken: corrupted
profile info: sum_all is smaller than sum_max
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mar...@trippelsdorf.de


On x86_64-pc-linux-gnu I get bootstrap errors with
--with-build-config=bootstrap-lto and make profiledbootstrap:

/var/tmp/gcc_build_dir/./prev-gcc/g++ -B/var/tmp/gcc_build_dir/./prev-gcc/
-B/usr/x86_64-pc-linux-gnu/bin/ -nostdinc++
-B/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-B/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu
-I/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include
-I/var/tmp/gcc/libstdc++-v3/libsupc++
-L/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-L/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-c  -DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -march=native -O2 -pipe -flto=jobserver
-frandom-seed=1 -fprofile-use -DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual  
 -DHAVE_CONFIG_H -I. -Ic-family -I../../gcc/gcc -I../../gcc/gcc/c-family
-I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include 
-I../../gcc/gcc/../libdecnumber -I../../gcc/gcc/../libdecnumber/bid
-I../libdecnumber../../gcc/gcc/c-family/stub-objc.c -o c-family/stub-objc.o
../../gcc/gcc/c-family/stub-objc.c: In function
‘objc_maybe_warn_exceptions(unsigned int)’:
../../gcc/gcc/c-family/stub-objc.c:463:1: error: corrupted profile info:
sum_all is smaller than sum_max
../../gcc/gcc/c-family/stub-objc.c: In function ‘objc_finish_function()’:
../../gcc/gcc/c-family/stub-objc.c:463:1: error: corrupted profile info:
sum_all is smaller than sum_max
../../gcc/gcc/c-family/stub-objc.c: In function
‘objc_check_format_arg(tree_node*, tree_node*)’:
../../gcc/gcc/c-family/stub-objc.c:463:1: error: corrupted profile info:
sum_all is smaller than sum_max
../../gcc/gcc/c-family/stub-objc.c: In function
‘objc_string_ref_type_p(tree_node*)’:
../../gcc/gcc/c-family/stub-objc.c:463:1: error: corrupted profile info:
sum_all is smaller than sum_max
../../gcc/gcc/c-family/stub-objc.c: In function
‘objc_write_global_declarations()’:
...

or:
var/tmp/gcc_build_dir/./prev-gcc/g++ -B/var/tmp/gcc_build_dir/./prev-gcc/
-B/usr/x86_64-pc-linux-gnu/bin/ -nostdinc++
-B/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-B/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu
-I/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/include
-I/var/tmp/gcc/libstdc++-v3/libsupc++
-L/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-L/var/tmp/gcc_build_dir/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs 
-I../../gcc/libcpp -I. -I../../gcc/libcpp/../include -I../../gcc/libcpp/include
 -march=native -O2 -pipe -flto=jobserver -frandom-seed=1 -fprofile-use -W -Wall
-Wwrite-strings -Wmissing-format-attribute -pedantic -Wno-long-long 
-I../../gcc/libcpp -I. -I../../gcc/libcpp/../include -I../../gcc/libcpp/include
 -c -o init.o -MT init.o -MMD -MP -MF .deps/init.Tpo ../../gcc/libcpp/init.c
/usr/bin/gmsgfmt --statistics -o po/zh_TW.gmo ../../gcc/libcpp/po/zh_TW.po
210 translated messages.
178 translated messages, 23 fuzzy translations, 9 untranslated messages.
../../gcc/libcpp/init.c: In function ‘post_options(cpp_reader*)’:
../../gcc/libcpp/init.c:734:1: error: corrupted profile info: sum_all is
smaller than sum_max
../../gcc/libcpp/init.c: In function ‘cpp_finish(cpp_reader*, _IO_FILE*)’:
../../gcc/libcpp/init.c:734:1: error: corrupted profile info: sum_all is
smaller than sum_max
../../gcc/libcpp/init.c: In function ‘read_original_directory(cpp_reader*)’:
../../gcc/libcpp/init.c:734:1: error: corrupted profile info: sum_all is
smaller than sum_max
../../gcc/libcpp/init.c: In function ‘read_original_filename(cpp_reader*)’:
../../gcc/libcpp/init.c:734:1: error: corrupted profile info: sum_all is
smaller than sum_max
../../gcc/libcpp/init.c: In function ‘cpp_read_main_file(cpp_reader*, char
const*)’:
...


[Bug libfortran/50673] very slow I/O with trailing spaces

2011-10-09 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50673

--- Comment #1 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-10-09 12:04:55 UTC ---
Actually, since eating the trailing spaces is the issue (seems to be
implemented very generally in libfortran), the following is a practical
workaround in this case:

read(line(1:LEN_TRIM(line)),*) AA,vec

maybe something along these lines could be done in the runtime ?


[Bug c/50675] New: master and single OpenMP constructs broken

2011-10-09 Thread markflorisson88 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50675

 Bug #: 50675
   Summary: master and single OpenMP constructs broken
Classification: Unclassified
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: markflorisso...@gmail.com


single and master do not work properly in loops. They are either not executed
as often as they should, or the program deadlocks entirely:

#include stdio.h

int main(int argc, char **argv) {
int i;
#pragma omp parallel
{
for (i = 0; i  10; i++) {
#pragma omp single
puts(hello);
}
}
return 0;
}

This program deadlocks in gcc 4.4 and 4.6, whereas in 4.2 is is only executed 4
times (which is the number of cores on my machine). The same goes for the
master construct.


[Bug c++/50672] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-09
 Ever Confirmed|0   |1

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
12:31:46 UTC ---
Can you try to reduce the testcase somewhat, maybe helping yourself with
'delta'? http://gcc.gnu.org/wiki/A_guide_to_testcase_reduction

Thanks.


[Bug c++/48665] type of const member function

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48665

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||paolo.carlini at oracle dot
   ||com

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
12:33:43 UTC ---
Ian, can I have your opinion about this patch? Thanks in advance!


[Bug tree-optimization/50622] [4.7 Regression] ICE: verify_gimple failed for std::complexdouble

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50622

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
12:42:38 UTC ---
Thanks Vincenzo. Doesn't happen for __complex__ float, doesn't happen for  4
components, thus seems related to the size of the struct.


[Bug lto/50676] New: Partitioning may fail with presence of static variables referring to function labels

2011-10-09 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50676

 Bug #: 50676
   Summary: Partitioning may fail with presence of static
variables referring to function labels
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hubi...@gcc.gnu.org


Noticed the bug while preparing -fno-topelvel-reorder patch for Andi.
With WIP version of patch I got following failure building Mozilla:
/tmp/ccPpJShB.ltrans29.ltrans.o:ccPpJShB.ltrans29.o:function
_ZZN2js9InterpretEP9JSContextPNS_10StackFrameENS_10InterpModeEE15normalJumpTable.7094572:
error: undefined reference to
+'.L79667'  
/tmp/ccPpJShB.ltrans29.ltrans.o:ccPpJShB.ltrans29.o:function
_ZZN2js9InterpretEP9JSContextPNS_10StackFrameENS_10InterpModeEE15normalJumpTable.7094572:
error: undefined reference to
+'.L79668'  
/tmp/ccPpJShB.ltrans29.ltrans.o:ccPpJShB.ltrans29.o:function
_ZZN2js9InterpretEP9JSContextPNS_10StackFrameENS_10InterpModeEE15normalJumpTable.7094572:
error: undefined reference to
+'.L79669'  
/tmp/ccPpJShB.ltrans29.ltrans.o:ccPpJShB.ltrans29.o:function
_ZZN2js9InterpretEP9JSContextPNS_10StackFrameENS_10InterpModeEE15normalJumpTable.7094572:
error: undefined reference to
+'.L79670'  
/tmp/ccPpJShB.ltrans29.ltrans.o:ccPpJShB.ltrans29.o:function
_ZZN2js9InterpretEP9JSContextPNS_10StackFrameENS_10InterpModeEE15normalJumpTable.7094572:
error: undefined reference to
+'.L79671' 

We will need artificial testcase for that that is bit tricky because it
involves putting function into one partition and its local static variable into
another, but clearly ipa-reference is not recording the cases where address of
local label is taken and thus partitioning happily breaks such code.

Honza


[Bug rtl-optimization/50677] New: volatile forces load into register

2011-10-09 Thread marc.glisse at normalesup dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50677

 Bug #: 50677
   Summary: volatile forces load into register
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: marc.gli...@normalesup.org
  Host: x86_64-linux-gnu


Compiling this simple program (-Ofast):

void f(int volatile*i){++*i;}

produces this code:

movl(%rdi), %eax
addl$1, %eax
movl%eax, (%rdi)

(or incl %eax for the central line with -Os).

However, if I remove volatile, I get the nicer:

addl$1, (%rdi)

(or incl (%rdi) with -Os).

The second version seems legal to me even in the volatile case, is that wrong?

There might be a relation to this thread:
http://gcc.gnu.org/ml/gcc/2011-10/msg6.html
(no volatile there, but a failure to fuse load+add+store)

This is particularly noticable because people (wrongly) use volatile for
threaded code and the 3 instruction version is likely even more racy than the
one with a single instruction.

(sorry if the category is wrong, I just picked one with optimization in the
name...)


[Bug ada/50678] New: [4.7 Regression] FAIL: c52104y on x86_64-apple-darwin10

2011-10-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50678

 Bug #: 50678
   Summary: [4.7 Regression] FAIL: c52104y on
x86_64-apple-darwin10
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: ebotca...@libertysurf.fr
  Host: x86_64-apple-darwin10
Target: x86_64-apple-darwin10
 Build: x86_64-apple-darwin10


Between revisions 179635 (OK) and 179703 (fails) the acats test c52104y has
started to fail on x86_64-apple-darwin10 (it is one of the three failing tests
on powerpc-apple-darwin9). The failure is:

splitting /opt/gcc/build_w/gcc/testsuite/ada/acats/tests/c5/c52104y.ada into:
   c52104y.adb
BUILD c52104y.adb
gnatmake --GCC=/opt/gcc/build_w/gcc/xgcc -B/opt/gcc/build_w/gcc/ -gnatws -O2
-fstack-check -I/opt/gcc/build_w/gcc/testsuite/ada/acats/support c52104y.adb
-largs --GCC=/opt/gcc/build_w/gcc/xgcc -B/opt/gcc/build_w/gcc/
/opt/gcc/build_w/gcc/xgcc -c -B/opt/gcc/build_w/gcc/ -gnatws -O2 -fstack-check
-I/opt/gcc/build_w/gcc/testsuite/ada/acats/support c52104y.adb
gnatbind -I/opt/gcc/build_w/gcc/testsuite/ada/acats/support -x c52104y.ali
gnatlink c52104y.ali -O2 -fstack-check --GCC=/opt/gcc/build_w/gcc/xgcc
-B/opt/gcc/build_w/gcc/
RUN c52104y

,.,. C52104Y ACATS 2.5 11-10-08 14:57:10
 C52104Y CHECK THAT IN ARRAY ASSIGNMENTS AND IN SLICE ASSIGNMENTS,
THE LENGTHS MUST MATCH.
   - C52104Y NO CONSTRAINT_ERROR FOR NON-NULL ARRAY SUBTYPE WHEN ONE
DIMENSION HAS INTEGER'LAST + 3 COMPONENTS.

raised CONSTRAINT_ERROR : erroneous memory access
FAIL:   c52104y


[Bug lto/50676] Partitioning may fail with presence of static variables referring to function labels

2011-10-09 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50676

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-09 13:04:28 UTC ---
Have a look at PR50620. I can provide 30 different testcases
for this issue ;-).


[Bug lto/50676] Partitioning may fail with presence of static variables referring to function labels

2011-10-09 Thread hubicka at ucw dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50676

--- Comment #2 from Jan Hubicka hubicka at ucw dot cz 2011-10-09 13:17:58 UTC 
---
 Have a look at PR50620. I can provide 30 different testcases
 for this issue ;-).
Those are different problems (i.e. not involving labels with address taken).
I will look into that now.

Honza


[Bug lto/50620] undefined reference errors / csmith lto testing

2011-10-09 Thread hubicka at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50620

Jan Hubicka hubicka at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from Jan Hubicka hubicka at gcc dot gnu.org 2011-10-09 
13:28:40 UTC ---
The problem here is different than one in PR50620.
What happens is that we ship constructors of const static variables into every
partition that reffers to that to aid possible folding of loads from the var.
The constructor of variable pointing to g_331 gets shipped to ltrans1 even when
it is otherwise in other partition. Eventually we fold and place direct
reference to g_331 into code, but the logic promoting symbols hidden doesn't
really consider this posibility, so we end up with undefined reference.

I guess the whole promotion code will need some cleanups and updating - first
the logic is all duplicated in between lto.c and lto-cgraph.c and it is O(n^2),
and second it is not really easy to tweak it to solve this problem - it is
based on the fact that only funcions/variable sin the partition may cause
promotion, while the variable pointing to g_331 is not in ltrans1.

Honza


[Bug bootstrap/50674] [4.7 Regression] profiledbootstrap broken: corrupted profile info: sum_all is smaller than sum_max

2011-10-09 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50674

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||rth at gcc dot gnu.org

--- Comment #1 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-09 13:35:26 UTC ---
Git bisect points to Rev179701:

f480372230f4bfc55d02b48322ed5c96e999d7e0 is the first bad commit
commit f480372230f4bfc55d02b48322ed5c96e999d7e0
Author: rth rth@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Fri Oct 7 22:41:48 2011 +

Rename vshuffle/vec_shuffle to vec_perm.

* doc/extend.texi (__builtin_shuffle): Improve the description to
include the modulus of the selector.  Mention OpenCL.
* doc/md.texi (vec_perm, vec_perm_const): Document named patterns.

* tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
* genopinit.c (optabs): Rename vshuffle to vec_perm.
* c-typeck.c (c_build_vec_perm_expr): Rename from
c_build_vec_shuffle_expr.  Update for name changes.
* optabs.c (expand_vec_perm_expr_p): Rename from
expand_vec_shuffle_expr_p.
(expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
* optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
(vec_perm_optab): Rename from vshuffle_optab.
* expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c,
tree-pretty-print.c,
tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.

* config/i386/i386.c (ix86_expand_vec_perm): Rename from
ix86_expand_vshuffle.
* config/i386/i386-protos.h: Update.
* config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
(vec_permVEC_PERM_AVX2): Rename from vshuffleVSHUFFLE_AVX2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179701
138bc75d-0d04-0410-961f-82ee72b054a4


[Bug c++/10200] Weird clash with same names in different scopes

2011-10-09 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10200

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 CC||bangerth at gmail dot com

--- Comment #17 from Wolfgang Bangerth bangerth at gmail dot com 2011-10-09 
13:34:27 UTC ---
Still happens with gcc 4.5.1.


[Bug c++/15272] lookup, dependent base

2011-10-09 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15272

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 CC||bangerth at gmail dot com

--- Comment #7 from Wolfgang Bangerth bangerth at gmail dot com 2011-10-09 
13:36:06 UTC ---
Still happens with gcc4.5.1.


[Bug c++/6936] member using binds wrong

2011-10-09 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=6936

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 CC||bangerth at gmail dot com

--- Comment #2 from Wolfgang Bangerth bangerth at gmail dot com 2011-10-09 
13:38:29 UTC ---
Still happens with gcc4.5.1. Note that it doesn't matter which of
the variables are accessed since it's a name lookup problem and
name lookup happens before access control checking.


[Bug c/50675] master and single OpenMP constructs broken

2011-10-09 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50675

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-10-09 
13:41:54 UTC ---
User error.  The i variable is shared in your testcase, thus different threads
may encounter #pragma omp single different number of times, which is invalid.
Just use #pragma omp parallel private (i) or declare i inside of the #pragma
omp parallel block instead.


[Bug c/50675] master and single OpenMP constructs broken

2011-10-09 Thread markflorisson88 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50675

--- Comment #2 from markflorisson88 markflorisson88 at gmail dot com 
2011-10-09 13:46:27 UTC ---
Indeed, you are right. My apologies, I should teach myself to use
default(none).


[Bug c++/11814] Code with missing template keyword wrongly accepted

2011-10-09 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11814

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 CC||bangerth at gmail dot com

--- Comment #12 from Wolfgang Bangerth bangerth at gmail dot com 2011-10-09 
13:52:05 UTC ---
Still happens with gcc4.5.1.


[Bug lto/50679] New: Linux kernel LTO tracking bug

2011-10-09 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50679

 Bug #: 50679
   Summary: Linux kernel LTO tracking bug
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: andi-...@firstfloor.org


Meta bug to track various problems encountered while building the Linux
kernel with LTO


[Bug c++/10291] error referencing a static local from a local struct in template code

2011-10-09 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10291

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 CC||bangerth at gmail dot com

--- Comment #9 from Wolfgang Bangerth bangerth at gmail dot com 2011-10-09 
13:55:10 UTC ---
Still happens with gcc4.5.1.


[Bug c++/6936] member using binds wrong

2011-10-09 Thread fabien at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=6936

fabien at gcc dot gnu.org changed:

   What|Removed |Added

   Last reconfirmed|2006-09-03 21:39:27 |2011-10-09 21:39:27
  Known to fail||4.5.1, 4.6.0

--- Comment #3 from fabien at gcc dot gnu.org 2011-10-09 13:54:21 UTC ---
(In reply to comment #2)
 Still happens with gcc4.5.1. 

... And on 4.6, 4.7 as well.


[Bug c++/10852] Old for-scoping rules improperly used?

2011-10-09 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10852

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 CC||bangerth at gmail dot com

--- Comment #6 from Wolfgang Bangerth bangerth at gmail dot com 2011-10-09 
13:59:42 UTC ---
Still happens for gcc4.5.1.


[Bug c++/11814] Code with missing template keyword wrongly accepted

2011-10-09 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11814

--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org 2011-10-09 
14:01:26 UTC ---
and 4.7.0


[Bug lto/50679] Linux kernel LTO tracking bug

2011-10-09 Thread ak at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50679

ak at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #1 from ak at gcc dot gnu.org 2011-10-09 14:06:44 UTC ---
urrently I have to revert 2 patches to get anywhere near a build
and work around 50644. 32bit builds don't work at all because of
the tree-nrv problem.

50620 causes incredly slow builds because partitioning has to be disabled


[Bug lto/50620] undefined reference errors / csmith lto testing

2011-10-09 Thread andi-gcc at firstfloor dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50620

Andi Kleen andi-gcc at firstfloor dot org changed:

   What|Removed |Added

 CC||andi-gcc at firstfloor dot
   ||org

--- Comment #2 from Andi Kleen andi-gcc at firstfloor dot org 2011-10-09 
14:33:18 UTC ---
I see a similar problem in a large LTO build
(at least Honza thinks it's the same)


[Bug c++/42768] ICE: libstdc++-v3/libsupc++/vec.cc:354

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42768

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011-10-09
 CC|gcc-bugs at gcc dot gnu.org |
 Ever Confirmed|0   |1

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
14:34:09 UTC ---
Is this still an issue?


[Bug c++/43566] Debug information removed on last bracket of function

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43566

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|gcc-bugs at gcc dot gnu.org |jakub at gcc dot gnu.org

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
14:35:37 UTC ---
Jakub, can you help triaging this?


[Bug c++/44650] internal compiler error: in ei_container, at basic-block.h:687

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44650

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.6.0, 4.6.1, 4.7.0
 Resolution||FIXED

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
14:39:35 UTC ---
Works fine with 4.6.x.


[Bug c++/49912] [4.7 Regression] ICE from -freorder-blocks-and-partition : verify_flow_info failed

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49912

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-09
 CC||rguenth at gcc dot gnu.org
Summary|ICE from|[4.7 Regression] ICE from
   |-freorder-blocks-and-partit |-freorder-blocks-and-partit
   |ion : verify_flow_info  |ion : verify_flow_info
   |failed  |failed
 Ever Confirmed|0   |1

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
14:45:24 UTC ---
This is a regression. Looking for a more appropriate Component
categorization..


[Bug c++/50672] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread dcb314 at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

--- Comment #2 from dcb dcb314 at hotmail dot com 2011-10-09 14:55:29 UTC ---
(In reply to comment #1)
 Can you try to reduce the testcase somewhat, maybe helping yourself with
 'delta'? http://gcc.gnu.org/wiki/A_guide_to_testcase_reduction

I tried for an hour or so to get 'delta' to do something useful.
I failed. Feel free to have a go yourself.


[Bug c++/49525] [4.4] wrong code and wrong warning for bitfield related operations

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49525

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.6.0, 4.6.1, 4.7.0
 Resolution||WORKSFORME

--- Comment #12 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:00:06 UTC ---
Can't reproduce with current 4_4-branch, 4_5-branch, 4_6-branch, and mainline.


[Bug c++/46727] [4.4 Regression] ICE with -O3 and -ffast-math (in get_callee_fndecl, at tree.c:6857)

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46727

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC|spamverdacht at aon dot at  |
 Resolution||FIXED

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:01:59 UTC ---
Fixed then.


[Bug c++/50672] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:04:34 UTC ---
I already felt free, I asked because without a manageable testcase it gonna
take more time, be warned.


[Bug tree-optimization/50635] ICE on valid: segfault in vectorize_loops

2011-10-09 Thread irar at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50635

--- Comment #4 from irar at gcc dot gnu.org 2011-10-09 15:09:04 UTC ---
Author: irar
Date: Sun Oct  9 15:09:00 2011
New Revision: 179724

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

PR tree-optimization/50635
* tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
DEF_STMT to the list of statements to be replaced by the
pattern statements.
(vect_handle_widen_mult_by_const): Don't check TYPE_OUT.


Added:
trunk/gcc/testsuite/gcc.dg/vect/pr50635.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-patterns.c


[Bug c++/43922] internal compiler error: in copy_body_r, at tree-inline.c:748 when compiling with -fopenmp

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43922

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC|gcc-bugs at gcc dot |
   |gnu.org,|
   |stephan.ai...@fu-berlin.de  |
 Resolution||INVALID

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:10:22 UTC ---
4.3.x is not maintained anymore. Also, no *.ii


[Bug objc++/48394] ObjC exceptions cannot be caught in ObjC++

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48394

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||nicola at gcc dot gnu.org
  Component|c++ |objc++

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:16:27 UTC ---
Nicola, this one was miscategorized as C++. Can you help triaging it?


[Bug c++/49976] Cross (Linux-AIX) GCC crashes with Segmentation fault

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49976

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||dje at gcc dot gnu.org
   Severity|major   |normal

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:18:49 UTC ---
David, can you help triaging this? Or find somebody willing to?


[Bug c++/49896] undefined reference to static const integral member whose address is not used, for some values of the constant

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49896

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:22:48 UTC ---
Jason, I guess we need a final word about the triage of this.


[Bug c++/48686] ICE in extract_insn, at recog.c:2103 with -ftree-vectorize and -O2

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48686

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Known to work||4.6.0, 4.6.1, 4.7.0
 Resolution||FIXED

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:27:38 UTC ---
Works fine with current 4_5-branch, 4.6.x, mainline.


[Bug c++/50672] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #4 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-09 15:28:16 UTC ---
 % cat test.ii 
namespace std {
  templateclass _CharT struct char_traits;
  typedef struct __locale_struct {
  }
  *__locale_t;
  templatetypename _CharT, typename _Traits = char_traits_CharT  class
basic_ostream;
  typedef basic_ostreamchar ostream;
  }
   class UniqueId {
  };
   typedef int BoxCoordinate;
   typedef int BoxDimension;
   const BoxDimension X = 0;
   const BoxDimension Y = 1;
   const BoxDimension NDimensions = 2;
   class BoxPoint {
  protected:  BoxCoordinate point[NDimensions];
  public:  BoxPoint(BoxCoordinate x, BoxCoordinate y) {
   }
   bool isValid() const {
   }
   void operator += (const BoxPoint p) {
if (isValid()  p.isValid())  {
 point[X] += p.point[X];
}
   }
   BoxCoordinate operator [] (const BoxDimension dimension) {
return point[dimension];
   }
  };
   class BoxSize: public BoxPoint {
  };
   class BoxRegion {
  private:  BoxPoint _origin;
   BoxSize _space;
  public:  BoxRegion(const BoxPoint o, const BoxSize s)  : _origin(o),
_space(s) {
   }
   BoxCoordinate origin(BoxDimension d) {
   }
   BoxCoordinate space(BoxDimension d) {
   }
  };
   inline bool operator = (const BoxPoint p, const BoxRegion r) {
   for (BoxDimension d = X;
 d = Y;
 d++)  if (p[d]  r.origin(d) || p[d] = r.origin(d) +
r.space(d))  return false;
   return true;
  }
   extern C {
   typedef struct _WidgetRec *Widget;
  }
   struct GraphGC {
   BoxPoint offsetIfSelected;
  };
   class GraphNode;
   class Graph;
   class GraphEdge {
  private:  UniqueId _id;
   GraphNode *_from;
   GraphNode *_to;
   bool _hidden;
   GraphEdge *_nextFrom;
   GraphEdge *_nextTo;
   GraphEdge *_prevFrom;
   GraphEdge *_prevTo;
   GraphEdge *next;
   GraphEdge *prev;
   Graph *graph;
  public:  GraphEdge(GraphNode *f, GraphNode *t):  _id(), _from(f),
_to(t), _hidden(false), _nextFrom(0), _nextTo(0),
 _prevFrom(0), _prevTo(0), next(0), prev(0), graph(0) {
   }
   GraphNode *from() const {
   }
   GraphNode *to() const {
   }
  };
   class LineGraphEdge: public GraphEdge {
  protected:  static void findLine(const BoxPoint c1, const BoxPoint c2, 
   const BoxRegion b1, const BoxRegion b2, BoxPoint p1, BoxPoi
nt p2, const GraphGC gc);
   virtual void drawLine(Widget w,  const BoxRegion exposed, 
const GraphGC gc) const;
  public:  void _print(std::ostream os, const GraphGC gc) const;
  };
   class ArcGraphEdge: public LineGraphEdge {
   static bool center(const BoxPoint p1, const BoxPoint p2, 
const BoxPoint p3, double x, double y);
   void makeLine(Widget w, const BoxRegion exposed, std::ostream
os, const GraphGC gc) const;
  };
   class GraphNode {
  public:  int count;
   bool selected() {
   }
   GraphEdge *firstTo() const {
   }
   GraphEdge *nextTo(GraphEdge *ref) const;
   virtual const BoxPoint pos() const = 0;
   virtual const BoxRegion region(const GraphGC gc) const = 0;
   virtual bool isHint() const {
   }
  };
   class PosGraphNode: public GraphNode {
  };
   class RegionGraphNode: public PosGraphNode {
  };
   class HintGraphNode: public RegionGraphNode {
  };
   void ArcGraphEdge::makeLine(Widget w,const BoxRegion exposed,  
 std::ostream os,const GraphGC gc) const {
   HintGraphNode *arc_hint = 0;
   RegionGraphNode *arc_from = 0;
   RegionGraphNode *arc_to = 0;
   bool make_arc = true;
   if (from()-isHint()  to()-isHint()) {
make_arc = false;
   }
  else if (from()-isHint()  from()-firstTo() != 0) {
if (arc_hint == 0 || arc_from == 0 || arc_to == 0  ||
arc_hint-nextTo(arc_hint-firstTo()) != 0)  {
 make_arc = false;
}
   }
   if (!make_arc) {
if (w != 0)  LineGraphEdge::drawLine(w, exposed, gc);
else  LineGraphEdge::_print(os, gc);
return;
   }
   BoxPoint pos_from = arc_from-pos();
   BoxRegion region_from = arc_from-region(gc);
   BoxPoint pos_to = arc_to-pos();
   BoxRegion region_to = arc_to-region(gc);
   BoxPoint pos_hint = arc_hint-pos();
   if (arc_hint-selected()) {
pos_hint += gc.offsetIfSelected;
   }
   if (pos_hint = 

[Bug c++/50672] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

--- Comment #5 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-09 15:31:43 UTC ---
Created attachment 25449
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25449
reduced testcase

Copy  paste didn't work. Here is an attachment.


[Bug c++/50672] [4.7 Regression] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||rguenther at suse dot de
Summary|ice: verify_ssa failed: no  |[4.7 Regression] ice:
   |immediate_use list  |verify_ssa failed: no
   ||immediate_use list

--- Comment #6 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:38:39 UTC ---
Thanks Markus. Looks like a regression, and should be better categorized.


[Bug c++/50672] [4.7 Regression] ice: verify_ssa failed: no immediate_use list

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50672

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|WAITING |NEW


[Bug c++/32614] -fmessage-length documentation and implementation disagree

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32614

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|gcc-bugs at gcc dot gnu.org |paolo.carlini at oracle dot
   ||com

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
15:54:30 UTC ---
Tom? If I don't hear from you, I'll go ahead and do what Manuel suggested... No
point in keeping this open for 4 years!


[Bug c++/27692] FAIL: g++.old-deja/g++.other/init5.C execution test

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27692

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|gcc-bugs at gcc dot gnu.org |

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
16:00:17 UTC ---
Not sure to understand which is the current status of this. Should it be simply
*skipped* instead of *xfailed* on such targets?


[Bug fortran/50564] [4.7 Regression] Front-end optimization - ICE with FORALL

2011-10-09 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50564

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-09 
16:00:41 UTC ---
(In reply to comment #4)
 So, the best method is to disable front-end optimization within
 a forall loop.
 
 I assume the same holds for DO CONCURRENT.

I think do concurrent is OK - here, the same as with a DO loop applies -- only
the user has to guarantee that the loop will yield the same result independent
of the execution order of the bounds.

However, I think the current FE optimization might have problems with
threadsafety. Assume:

!$OMP parallel do default(share)
do i = 1, 5
  A(i) = 5*cos(B(i))+8*cos(B(i))
end do

If one now transforms this into:

!$OMP parallel do default(share)
do i = 1, 5
  tmp = cos(B(i))
  A(i) = 5*tmp+8*tmp
end do

one has a problem as tmp is shared. Thus, one needs to make sure that all
inserted temporary variables are thread private (DECL_THREAD_LOCAL_P).


[Bug fortran/43829] Scalarization of reductions

2011-10-09 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43829

--- Comment #45 from Dominique d'Humieres dominiq at lps dot ens.fr 
2011-10-09 16:01:27 UTC ---
 Thanks. One comment: I think you will increase the binary size by inlining the
 reduction. Could you consider keeping the current libgfortran version and
 protecting the scalarization by
  if (!optimize_size)

When compiling the test in comment #43 with -O2, the size of the a.out file is

[macbook] f90/bug% ll a.out
-rwxr-xr-x 1 dominiq staff 17752 Oct  9 17:55 a.out*

with -Os it is

[macbook] f90/bug% ll a.out
-rwxr-xr-x 1 dominiq staff 30216 Oct  9 17:54 a.out*

Are these numbers misleading, or once again compiling for size does not give
the smallest size?


[Bug c++/43913] error: ‘expression error’ is not a valid template argument for type ‘int’ because it is a non-constant expression

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43913

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC|gcc-bugs at gcc dot gnu.org |
 Resolution||FIXED

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
16:08:23 UTC ---
This is fixed in 4.6.x.


[Bug preprocessor/46444] termination of preprocessing by cpp when no include file is found

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46444

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||tromey at gcc dot gnu.org
  Component|c++ |preprocessor

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
16:11:50 UTC ---
I suspect this is not going to happen. In any case, a preprocessor issue.


[Bug fortran/50564] [4.7 Regression] Front-end optimization - ICE with FORALL

2011-10-09 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50564

--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-09 
16:14:43 UTC ---
(In reply to comment #5)
 one has a problem as tmp is shared. Thus, one needs to make sure that all
 inserted temporary variables are thread private (DECL_THREAD_LOCAL_P).

Actually, it probably works as one declares tmp as BLOCK in the DO loop,
which presumably generates a thread-private variable.


[Bug tree-optimization/50680] New: -ftree-vectorizer-verbose does not report about basic block SLP (attempt of) vectorization

2011-10-09 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50680

 Bug #: 50680
   Summary: -ftree-vectorizer-verbose does not report about
basic block SLP (attempt of) vectorization
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: trivial
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


in this example compiled with
c++ -Ofast -ftree-vectorizer-verbose=7  -c slp.cc  -mtune=corei7  -msse4.2
it reports only about loop, voop,aoop, not about the equivalently
(not)-vectorized code in foo,voo,aoo
This makes debug/optmization of basic block SLP difficult
(it took me a while to understand why foo is not vectorized!)

float * __restrict__ x;
float * __restrict__ y;
float * __restrict__ z;

float v1[4],v2[4],v3[4];

struct A {
  float a[4];
}; //  __attribute__ ((aligned(16)));

A a1, a2, a3;

void foo ()
{

 float * __restrict__ pin = x[0];
 float * __restrict__ pout =y[0];

  *pout++ = *pin++;
  *pout++ = *pin++;
  *pout++ = *pin++;
  *pout++ = *pin++;
}

void voo() {

 float * __restrict__ pin = v1[0];
 float * __restrict__ pout =v2[0];

  *pout++ = *pin++;
  *pout++ = *pin++;
  *pout++ = *pin++;
  *pout++ = *pin++;


}

void aoo() {

 float * __restrict__ pin = a1.a[0];
 float * __restrict__ pout =a2.a[0];

  *pout++ = *pin++;
  *pout++ = *pin++;
  *pout++ = *pin++;
  *pout++ = *pin++;


}


void loop() {
  for (int i=0;i!=4;++i) x[i]=y[i]+z[i];
}

void voop() {
  for (int i=0;i!=4;++i) v1[i]=v2[i]+v3[i];
}

void aoop() {
  for (int i=0;i!=4;++i) a1.a[i]=a2.a[i]+a3.a[i];
}


[Bug c++/39164] [C++0x] defaulted dtor redefinition not caught

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39164

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 CC|jason at gcc dot gnu.org|
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
16:16:01 UTC ---
Fixed then.


[Bug c++/39043] C++ compiler doesn't optimize inlined function call for PIE

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39043

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|gcc-bugs at gcc dot gnu.org |

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
16:17:03 UTC ---
Thus, invalid?


[Bug c/50669] no warning for unused globals

2011-10-09 Thread jg at jguk dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50669

--- Comment #2 from Jon Grant jg at jguk dot org 2011-10-09 16:44:18 UTC ---
I could understand this for libraries. However, when linking as an executable
binary, could the global really be still exported?


[Bug fortran/43829] Scalarization of reductions

2011-10-09 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43829

--- Comment #46 from Mikael Morin mikael at gcc dot gnu.org 2011-10-09 
16:44:19 UTC ---
(In reply to comment #45)
 Are these numbers misleading, or once again compiling for size does not give
 the smallest size?

Well, to begin with, I don't think the test is close to a real world case.
It initializes a couple of arrays, and then applies to them various
computations involving sum which it basically throws away afterwards. I
wouldn't be surprised if some of the computations could be optimized away or
shared between the different checks. I'm purely speculating here, but that
would explain the size difference between inlined and then removed code vs kept
around library call.

Checks like this (for example) are good candidates for removal:
  if (any(sum(sum(a,1),1) /= sum(sum(a,2),1))) call abort


[Bug lto/50679] Linux kernel LTO tracking bug

2011-10-09 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50679

Markus Trippelsdorf markus at trippelsdorf dot de changed:

   What|Removed |Added

 CC||markus at trippelsdorf dot
   ||de

--- Comment #2 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-10-09 17:11:52 UTC ---
I've no problems building the kernel with LTO at the moment,
but I use no modules and a fairly minimal config.

I've seen a few strange segfaults while testing the LTO kernel however.

For example:
screen[1608]: segfault at 7fff42d73e98 ip 0040600a sp 7fff42d73ea0
error 6 in screen[40+55000]
or
zsh[1643]: segfault at 7f7980eb4000 ip 7f7981db6cb0 sp 7fff1f4b6dd8
error 7 in libc-2.14.90.so[7f7981d34000+15f000] 

But I'm not 100% sure, that they're really LTO related.


[Bug bootstrap/50674] [4.7 Regression] profiledbootstrap broken: corrupted profile info: sum_all is smaller than sum_max

2011-10-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50674

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug rtl-optimization/50677] volatile forces load into register

2011-10-09 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50677

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-10-09
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-10-09 
17:36:30 UTC ---
Well, the issue is that most optimization passes just don't do anything
for volatile qualified accesses.  That's a safe thing.  Deciding what
kind of optimizations are allowed for volatile accesses might introduce bugs,
and sofar the consensus was volatile?  don't bother with optimization, it'll
be slow anyway.

It very likely is combine that gives up here.


[Bug c++/38172] warn_unused_result does not work with structs not containing a copy constructor

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38172

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC|gcc-bugs at gcc dot gnu.org |
 Resolution||FIXED

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
17:36:12 UTC ---
Fixed in 4.5.x.


[Bug fortran/50564] [4.7 Regression] Front-end optimization - ICE with FORALL

2011-10-09 Thread tkoenig at netcologne dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50564

--- Comment #7 from tkoenig at netcologne dot de tkoenig at netcologne dot de 
2011-10-09 18:10:37 UTC ---
Am 09.10.2011 18:14, schrieb burnus at gcc dot gnu.org:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50564

 --- Comment #6 from Tobias Burnusburnus at gcc dot gnu.org  2011-10-09 
 16:14:43 UTC ---
 (In reply to comment #5)
 one has a problem as tmp is shared. Thus, one needs to make sure that all
 inserted temporary variables are thread private (DECL_THREAD_LOCAL_P).

 Actually, it probably works as one declares tmp as BLOCK in the DO loop,
 which presumably generates a thread-private variable.

Could you supply a complete test case?  I'd like to check this out, but#
I don't use OpenMP myself.


[Bug fortran/50627] Error recovery: ICE in gfc_free_namespace after diagnosing missing end of construct

2011-10-09 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50627

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 CC||tkoenig at gcc dot gnu.org
Summary|[OOP] Error recovery: ICE   |Error recovery: ICE in
   |in gfc_free_namespace after |gfc_free_namespace after
   |properly diagnosing bogus   |diagnosing missing end of
   |SELECT TYPE in MODULE   |construct

--- Comment #3 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-10-09 
18:12:31 UTC ---
Simpler test case:

ig25@linux-fd1f:~/Krempel/OMP cat block.f90
program main
  block
end program main
ig25@linux-fd1f:~/Krempel/OMP gfortran block.f90
block.f90:3.3:

end program main
   1
Error: Expecting END BLOCK statement at (1)
Error: Unexpected end of file in 'block.f90'
f951: internal compiler error: in gfc_free_namespace, at fortran/symbol.c:3259
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


[Bug c++/50681] New: A constexpr identifier in a header file generates undefined symbols in object code.

2011-10-09 Thread Fetrovsky at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50681

 Bug #: 50681
   Summary: A constexpr identifier in a header file generates
undefined symbols in object code.
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: fetrov...@gmail.com


kMaxValue in class template Cursor generates an undefined symbol in the object
code.  Since the value isn't defined anywhere else, I get an undefined symbol
error from the linker.

templatetypename Type = int
class Cursor {
 public:
  typedef std::pairType, Type Pair;

 private:
  Pair _position;

 public:
  static Type constexpr kMaxValue =
   std::numeric_limitsType::max();

  Cursor(Pair const size = Pair(kMaxValue, kMaxValue)):
   _position(size.first, size.first) {}
};


Example usage:

class UI {
 private:
  Cursor _cursor;

 public:
  virtual Cursor::Pair GetSize() {
   return make_pair(0, 0);
  }
};

int main() {
 return UI().GetSize().first;
}


Linker message:

x.cpp:(.text._ZN2UIC2Ev[_ZN2UIC5Ev]+0x1c): undefined reference to
`Cursorint::kMaxValue'
x.cpp:(.text._ZN2UIC2Ev[_ZN2UIC5Ev]+0x21): undefined reference to
`Cursorint::kMaxValue'


[Bug c++/50681] A constexpr identifier in a header file generates undefined symbols in object code.

2011-10-09 Thread Fetrovsky at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50681

Feto Fetrovsky at gmail dot com changed:

   What|Removed |Added

URL||http://ideone.com/kfs6n
 CC||Fetrovsky at gmail dot com
   Severity|normal  |major


[Bug c++/50681] [C++0x] A constexpr identifier in a header file generates undefined symbols in object code.

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50681

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID
Summary|A constexpr identifier in a |[C++0x] A constexpr
   |header file generates   |identifier in a header file
   |undefined symbols in object |generates undefined symbols
   |code.   |in object code.

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
18:37:56 UTC ---
Yes, you still need a definition, constexpr or not.


[Bug tree-optimization/50682] New: [4.7 Regression] ICE: SIGSEGV in main_block_label with -O2 -fnon-call-exceptions -ftracer

2011-10-09 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50682

 Bug #: 50682
   Summary: [4.7 Regression] ICE: SIGSEGV in main_block_label with
-O2 -fnon-call-exceptions -ftracer
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zso...@seznam.cz
  Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu


Created attachment 25450
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25450
reduced testcase

Compiler output:
$ gcc -O2 -fnon-call-exceptions -ftracer -fno-tree-ccp -fno-tree-copy-prop
-fno-tree-dce testcase.C
==3654== Invalid read of size 4
==3654==at 0xB65233: main_block_label(tree_node*) (tree-cfg.c:1082)
==3654==by 0xB6965E: cleanup_dead_labels() (tree-cfg.c:)
==3654==by 0xBBA2EC: execute_cleanup_cfg_post_optimizing()
(tree-optimize.c:162)
==3654==by 0xA62BF7: execute_one_pass(opt_pass*) (passes.c:2064)
==3654==by 0xA62F64: execute_pass_list(opt_pass*) (passes.c:2119)
==3654==by 0xBBACFD: tree_rest_of_compilation(tree_node*)
(tree-optimize.c:420)
==3654==by 0x815EE5: cgraph_expand_function(cgraph_node*)
(cgraphunit.c:1805)
==3654==by 0x817E2B: cgraph_optimize() (cgraphunit.c:1864)
==3654==by 0x818219: cgraph_finalize_compilation_unit() (cgraphunit.c:1312)
==3654==by 0x64266A: cp_write_global_declarations() (decl2.c:4008)
==3654==by 0xB58803: toplev_main(int, char**) (toplev.c:581)
==3654==by 0x674ED2C: (below main) (in /lib64/libc-2.12.2.so)
==3654==  Address 0x50 is not stack'd, malloc'd or (recently) free'd
==3654== 
testcase.C: In function 'void test01()':
testcase.C:29:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

Tested revisions:
r179711 - crash
r178498 - crash
4.6 r177922 - OK


[Bug fortran/50627] Error recovery: ICE in gfc_free_namespace after diagnosing missing end of construct

2011-10-09 Thread mikael at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50627

Mikael Morin mikael at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mikael at gcc dot gnu.org

--- Comment #4 from Mikael Morin mikael at gcc dot gnu.org 2011-10-09 
19:11:14 UTC ---
For the problem in comment #0:
As we parse select type, we create a new namespace.
The statement is (correctly) rejected, but we don't free the namespace.
Then we are back parsing module content, and the code doing that assumes that
gfc_current_namespace points to the module namespace, which is not the case
anymore (it points to the select namespace).

I assume that the problem in comment #3 is of the same kind: 
We parse some block content, encounter end of file, then are back at parsing
the main program unit with gfc_current_ns still pointing to the block
namespace.


[Bug c++/31147] increased size of debug information

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31147

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC|gcc-bugs at gcc dot gnu.org |
 Resolution||INVALID

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
19:27:19 UTC ---
I don't see why we should keep this open.


[Bug c++/33758] g++: Internal error

2011-10-09 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33758

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC|gcc-bugs at gcc dot gnu.org |
 Resolution||INVALID

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-10-09 
19:29:40 UTC ---
Closing.



[Bug c/50669] no warning for unused globals

2011-10-09 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50669

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2011-10-09 
19:34:48 UTC ---
(In reply to comment #2)
 I could understand this for libraries. However, when linking as an executable
 binary, could the global really be still exported?

Yes.  In fact this is how plugins work in GCC.


[Bug fortran/45044] Different named COMMON block size: No warning

2011-10-09 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45044

--- Comment #6 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-09 
19:37:52 UTC ---
Author: burnus
Date: Sun Oct  9 19:37:47 2011
New Revision: 179729

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179729
Log:
2011-10-09  Tobias Burnus  bur...@net-b.de

PR fortran/45044
* trans-common.c (translate_common): Fix -Walign-commons
check.

2011-10-09  Tobias Burnus  bur...@net-b.de

PR fortran/45044
* gfortran.dg/common_14.f90: Compile with -Wno-align-commons.
* gfortran.dg/common_16.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/common_16.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-common.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/common_14.f90


[Bug rtl-optimization/50677] volatile forces load into register

2011-10-09 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50677

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2011-10-09 
19:48:39 UTC ---
This is a dup of an older bug too though I cannot find it right now.  Also it
is related to bug 49807.


[Bug fortran/50570] [4.6/4.7 Regression] Incorrect error for assignment to intent(in) pointer

2011-10-09 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50570

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||janus at gcc dot gnu.org

--- Comment #4 from janus at gcc dot gnu.org 2011-10-09 20:31:34 UTC ---
How about this?


Index: gcc/fortran/expr.c
===
--- gcc/fortran/expr.c  (revision 179723)
+++ gcc/fortran/expr.c  (working copy)
@@ -4635,7 +4635,7 @@ gfc_check_vardef_context (gfc_expr* e, bool pointe
   sym-name, context, e-where);
  return FAILURE;
}
-  if (!pointer  !is_pointer)
+  if (!pointer  !sym-attr.pointer)
{
  if (context)
gfc_error (Dummy argument '%s' with INTENT(IN) in variable


[Bug fortran/50570] [4.6/4.7 Regression] Incorrect error for assignment to intent(in) pointer

2011-10-09 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50570

--- Comment #5 from Tobias Burnus burnus at gcc dot gnu.org 2011-10-09 
20:39:47 UTC ---
(In reply to comment #4)
 How about this?

Looks as if should work (for comment 0).

(I think the test case in comment 2 is a completely different issue, which
needs a separate fix.)


[Bug rtl-optimization/34791] [avr] optimisation of 8-bit logic sometimes fails

2011-10-09 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34791

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

   What|Removed |Added

 Target|avr-*-* |avr
 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #3 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-10-09 
20:40:51 UTC ---
Compiled the following code from commant #0 and commant #1 with avr-gcc 4.7
(SVN 179594)

#define uint8_t unsigned char
#define PORTC (*((uint8_t volatile*) 0x28))

extern uint8_t data[64];

uint8_t bar(uint8_t x, uint8_t y) {
return data[y ^ (x  0x0f)];
}

uint8_t bar2(uint8_t x, uint8_t y) {
return data[(y ^ x)  0x0f];
}

void foo(void) {
static unsigned char count;

if (++count  0x3f) {
PORTC = ~0x01;
} else {
PORTC |= 0x01;
}
}

With -Os -dp yields the following result:

bar:
andi r24,lo8(15)
eor r24,r22
mov r30,r24
ldi r31,lo8(0)
subi r30,lo8(-(data))
sbci r31,hi8(-(data))
ld r24,Z
ret

bar2:
eor r22,r24
andi r22,lo8(15)
mov r30,r22
ldi r31,lo8(0)
subi r30,lo8(-(data))
sbci r31,hi8(-(data))
ld r24,Z
ret

foo:
lds r24,count.1232
subi r24,lo8(-(1))
sts count.1232,r24
andi r24,lo8(63)
breq .L4
cbi 40-0x20,0
ret
.L4:
sbi 40-0x20,0
ret

Thus, closing this PR as FIXED because the code is optimal and nothing remains
to be improved.


[Bug target/34789] [avr] sometimes the compiler keeps addresses in registers unnecessarily

2011-10-09 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34789

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

   What|Removed |Added

 Target|avr-*-* |avr
 Status|NEW |RESOLVED
 CC||gjl at gcc dot gnu.org
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #2 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-10-09 
20:49:20 UTC ---
This is compiled with avr-gcc-4.7.0 -Os -mmcu=avr4 as expected:

bar:
lds r30,a
lds r31,a+1
lsl r30
rol r31
subi r30,lo8(-(data))
sbci r31,hi8(-(data))
ld r24,Z
ldd r25,Z+1
rcall foo
movw r30,r24
lsl r30
rol r31
subi r30,lo8(-(data))
sbci r31,hi8(-(data))
ld r24,Z
ldd r25,Z+1
rjmp foo

Thus closing this PR as RESOLVED. For the tail call, see PR34790.


[Bug middle-end/34792] [avr] c++ worse than c compiler at 8-bit optimisations

2011-10-09 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34792

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

   What|Removed |Added

 Target|avr-*-* |avr
 Status|UNCONFIRMED |RESOLVED
 CC||gjl at gcc dot gnu.org
 Resolution||FIXED
   Target Milestone|--- |4.7.0

--- Comment #1 from Georg-Johann Lay gjl at gcc dot gnu.org 2011-10-09 
20:52:54 UTC ---
Cosed as fixed in 4.7.0. With -Os -mmcu=avr4 both avr-gcc and avr-g++ compile
to the same, optimal code:

bar2:
eor r22,r24
andi r22,lo8(15)
mov r30,r22
ldi r31,lo8(0)
subi r30,lo8(-(data))
sbci r31,hi8(-(data))
ld r24,Z
ret

_Z4bar2hh:
eor r22,r24
andi r22,lo8(15)
mov r30,r22
ldi r31,lo8(0)
subi r30,lo8(-(data))
sbci r31,hi8(-(data))
ld r24,Z
ret


[Bug ada/50678] [4.7 Regression] FAIL: c52104y on x86_64-apple-darwin10

2011-10-09 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50678

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot
   ||gnu.org

--- Comment #1 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-10-09 
20:59:46 UTC ---
It is one of the 6 stack checking tests so this isn't totally unexpected. 
Fixing this probably requires low-level fiddling with the OS (e.g. see
ada/init.c) so I cannot help for Darwin.


[Bug c++/49896] undefined reference to static const integral member whose address is not used, for some values of the constant

2011-10-09 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49896

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-10-09
 AssignedTo|unassigned at gcc dot   |jason at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #8 from Jason Merrill jason at gcc dot gnu.org 2011-10-09 
21:06:34 UTC ---
(In reply to comment #6)

Right.  I was surprised by this, but conversion of out-of-range values between
integral types is treated differently in the standard from overflow in
arithmetic operations.

4.7:

If the destination type is signed, the value is unchanged if it can be
represented in the destination type (and bit-field width); otherwise, the value
is implementation-defined.

So, the testcase is OK.  I think this bug is actually closely related to 49855,
as the fix for that bug also fixes this one for me.


[Bug fortran/50570] [4.6/4.7 Regression] Incorrect error for assignment to intent(in) pointer

2011-10-09 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50570

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from janus at gcc dot gnu.org 2011-10-09 21:15:20 UTC ---
(In reply to comment #5)
  How about this?
 
 Looks as if should work (for comment 0).

It does. I'll check for regressions.



 (I think the test case in comment 2 is a completely different issue, which
 needs a separate fix.)

Agreed. Separate, though related. I think the error message is a bug indeed. A
way to fix it might be:

Index: gcc/fortran/check.c
===
--- gcc/fortran/check.c (revision 179722)
+++ gcc/fortran/check.c (working copy)
@@ -458,7 +458,8 @@ variable_check (gfc_expr *e, int n, bool allow_pro
   if (e-expr_type == EXPR_VARIABLE
e-symtree-n.sym-attr.intent == INTENT_IN
(gfc_current_intrinsic_arg[n]-intent == INTENT_OUT
- || gfc_current_intrinsic_arg[n]-intent == INTENT_INOUT))
+ || gfc_current_intrinsic_arg[n]-intent == INTENT_INOUT)
+   !(e-symtree-n.sym-attr.pointer  e-ref))
 {
   gfc_error ('%s' argument of '%s' intrinsic at %L cannot be INTENT(IN),
 gfc_current_intrinsic_arg[n]-name, gfc_current_intrinsic,


[Bug fortran/50570] [4.6/4.7 Regression] Incorrect error for assignment to intent(in) pointer

2011-10-09 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50570

--- Comment #7 from janus at gcc dot gnu.org 2011-10-09 23:08:04 UTC ---
(In reply to comment #6)
 (In reply to comment #5)
   How about this?
  
  Looks as if should work (for comment 0).
 
 It does. I'll check for regressions.

Unfortunately it fails on:

FAIL: gfortran.dg/pointer_intent_1.f90  -O0  (test for excess errors)
FAIL: gfortran.dg/pointer_intent_3.f90  -O  (test for excess errors)
FAIL: gfortran.dg/pointer_intent_4.f90  -O0  (test for excess errors)


  1   2   >