[Bug bootstrap/53468] New: bootstrap fails on debian/amd64, unable to find crti.o and crtn.o

2012-05-24 Thread calebdelisle at lavabit dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53468

 Bug #: 53468
   Summary: bootstrap fails on debian/amd64, unable to find crti.o
and crtn.o
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: calebdeli...@lavabit.com


Looks like the bootstrapped compiler doesn't take into account debian's wonkey
dir structure. First build works with the host compiler, fails with xgcc.

Workaround:
mkdir /usr/lib/x86_64-unknown-linux-gnu
ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib/x86_64-unknown-linux-gnu/4.8.0



# @multilib_flags@ is still needed because this may use
# /home/user/disk/wrk/gcc/build/./gcc/xgcc
-B/home/user/disk/wrk/gcc/build/./gcc/
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/x86_64-unknown-linux-gnu/include -isystem
/usr/local/x86_64-unknown-linux-gnu/sys-includeand -O2  -g -O2 -DIN_GCC  
-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fpic -g
-DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  directly.
# @multilib_dir@ is not really necessary, but sometimes it has
# more uses than just a directory name.
/bin/bash ../../../gcc/libgcc/../mkinstalldirs .
/home/user/disk/wrk/gcc/build/./gcc/xgcc -B/home/user/disk/wrk/gcc/build/./gcc/
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/x86_64-unknown-linux-gnu/include -isystem
/usr/local/x86_64-unknown-linux-gnu/sys-include-O2  -g -O2 -DIN_GCC   -W
-Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition  -isystem ./include   -fpic -g
-DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  -shared -nodefaultlibs
-Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc.map -o
./libgcc_s.so.1.tmp -g -O2 -B./ _muldi3_s.o _negdi2_s.o _lshrdi3_s.o
_ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.o _ucmpdi2_s.o _clear_cache_s.o
_trampoline_s.o __main_s.o _absvsi2_s.o _absvdi2_s.o _addvsi3_s.o _addvdi3_s.o
_subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o
_ctors_s.o _ffssi2_s.o _ffsdi2_s.o _clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o
_ctzdi2_s.o _popcount_tab_s.o _popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o
_paritydi2_s.o _powisf2_s.o _powidf2_s.o _powixf2_s.o _mulsc3_s.o _muldc3_s.o
_mulxc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _bswapsi2_s.o _bswapdi2_s.o
_clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _fixunsxfsi_s.o
_fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixunssfdi_s.o _fixunsdfdi_s.o
_fixunsxfdi_s.o _floatdisf_s.o _floatdidf_s.o _floatdixf_s.o _floatundisf_s.o
_floatundidf_s.o _floatundixf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o
_umoddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o cpuinfo_s.o addtf3_s.o divtf3_s.o
multf3_s.o negtf2_s.o subtf3_s.o unordtf2_s.o fixtfsi_s.o fixunstfsi_s.o
floatsitf_s.o floatunsitf_s.o fixtfdi_s.o fixunstfdi_s.o floatditf_s.o
floatunditf_s.o fixtfti_s.o fixunstfti_s.o floattitf_s.o floatuntitf_s.o
extendsftf2_s.o extenddftf2_s.o extendxftf2_s.o trunctfsf2_s.o trunctfdf2_s.o
trunctfxf2_s.o getf2_s.o letf2_s.o eqtf2_s.o _divtc3_s.o _multc3_s.o
_powitf2_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o
unwind-sjlj_s.o unwind-c_s.o emutls_s.o -lc  rm -f ./libgcc_s.so  if [ -f
./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup; else
true; fi  mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1  ln -s libgcc_s.so.1
./libgcc_s.so
/usr/bin/ld: warning: wildcard match appears in both version 'GCC_3.0' and
'GCC_4.8.0' in script
/usr/bin/ld: error: cannot open crti.o: No such file or directory
/usr/bin/ld: error: cannot open crtn.o: No such file or directory
collect2: error: ld returned 1 exit status
make[3]: *** [libgcc_s.so] Error 1
make[3]: Leaving directory
`/disk/home/wrk/gcc/build/x86_64-unknown-linux-gnu/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/disk/home/wrk/gcc/build'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/disk/home/wrk/gcc/build'
make: *** [all] Error 2


[Bug c++/53464] Invalid default value for non-type template parameter is accepted

2012-05-24 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53464

Daniel Krügler daniel.kruegler at googlemail dot com changed:

   What|Removed |Added

 CC||daniel.kruegler at
   ||googlemail dot com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com 
2012-05-24 07:19:28 UTC ---
I don't see why the expression A::get() should not be a converted constant
expression of the type of the template parameter, please be more specific. The
rationale provided in the referenced link does not sound convincing to me. 

In the context of the instantiation the expression A::get() is a prvalue core
constant expression of int type, thus it is a literal constant expression of
int type. It is also a converted constant expression of type int, because
A::get() already has the type int (after instantiation).


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
07:21:28 UTC ---
We have
  x_9 = *D.1724_8;
...
  x_16 = ASSERT_EXPR x_9, x_9 != 0;
  D.1726_10 = found_x_2 != 0;
  D.1727_11 = x_16 = prev_x_3;
...
  # found_x_2 = PHI 0(2), 1(6)
  # prev_x_3 = PHI prev_x_4(D)(2), x_16(6)
...
  loop to top

prev_x_3: ~[0, 0]  EQUIVALENCES: { x_9 } (1 elements)
prev_x_4(D): UNDEFINED
x_9: VARYING
x_16: ~[0, 0]  EQUIVALENCES: { x_9 } (1 elements)

I think the problem are the equivalences, or their handling.  When we merge on
PHI UNDEFINED with ~[0, 0] EQUIVALENCES: { x_9 } into the latter, we push the
equivalence into the next loop iteration where x_9 already can have a different
value.  I guess either we could drop all equivalences when merging UNDEFINED
with some range with EQUIVALENCES, or at least those equivalences which don't
dominate the PHI.  Richard, what do you think?


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

--- Comment #3 from rguenther at suse dot de rguenther at suse dot de 
2012-05-24 07:29:52 UTC ---
On Thu, 24 May 2012, jakub at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465
 
 Jakub Jelinek jakub at gcc dot gnu.org changed:
 
What|Removed |Added
 
  CC||jakub at gcc dot gnu.org
 
 --- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
 07:21:28 UTC ---
 We have
   x_9 = *D.1724_8;
 ...
   x_16 = ASSERT_EXPR x_9, x_9 != 0;
   D.1726_10 = found_x_2 != 0;
   D.1727_11 = x_16 = prev_x_3;
 ...
   # found_x_2 = PHI 0(2), 1(6)
   # prev_x_3 = PHI prev_x_4(D)(2), x_16(6)
 ...
   loop to top
 
 prev_x_3: ~[0, 0]  EQUIVALENCES: { x_9 } (1 elements)
 prev_x_4(D): UNDEFINED
 x_9: VARYING
 x_16: ~[0, 0]  EQUIVALENCES: { x_9 } (1 elements)
 
 I think the problem are the equivalences, or their handling.  When we merge on
 PHI UNDEFINED with ~[0, 0] EQUIVALENCES: { x_9 } into the latter, we push the
 equivalence into the next loop iteration where x_9 already can have a 
 different
 value.  I guess either we could drop all equivalences when merging UNDEFINED
 with some range with EQUIVALENCES, or at least those equivalences which don't
 dominate the PHI.  Richard, what do you think?

Yes, I think we need to clear all equivalences in vrp_meet


[Bug bootstrap/53466] [4.8 Regression] Bootstrap failure

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53466

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2012-05-24
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
   Target Milestone|--- |4.8.0
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
07:34:03 UTC ---
Mine.


[Bug c/53467] xgcc:Internal error: Bus error (program cc1)

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53467

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target||sparc-linux

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
07:36:17 UTC ---
I'm sure your CPU does not support what you are building the compiler for.


[Bug bootstrap/53468] bootstrap fails on debian/amd64, unable to find crti.o and crtn.o

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53468

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
07:38:11 UTC ---
Well, it's hardly our fault that Debian breaks the only implemented scheme.
ISTR various workarounds floating around, try googling.


[Bug middle-end/53460] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-24
 Ever Confirmed|0   |1
  Build||x86_64-*-*

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
07:40:34 UTC ---
Confirmed, reducing.


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
07:42:26 UTC ---
Dropping all might pessimize some code (of course, this is VR_UNDEFINED, so the
question is if we need to care that much about broken code), like:
int
foo (int x, int y)
{
  int z;
  if (x = 3)
return 7;
  if (y)
z = x;
  return z == x;
}

where the equivalence could be very well kept.  Or
int
foo (int y)
{
  int z;
  int x = bar ();
  if (x = 3)
return 7;
  if (y)
z = x;
  return z == x;
}

In both cases the x_3 in the equivalence bitmap dominates the PHI stmt (in one
case it is the default parm def, in the second case not).  vrp_meet would
probably need to be called with gimple stmt in that case on which the meet
happens.

Anyway, if you think it is overkill, we can just drop the equivalences
altogether.


[Bug middle-end/53303] Reload/RA issue on word-sized paradoxical subregs for big-endian targets

2012-05-24 Thread aurelien.buhrig.gcc at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53303

--- Comment #2 from Aurelien Buhrig aurelien.buhrig.gcc at gmail dot com 
2012-05-24 07:43:39 UTC ---
This bug is very annoying for me. I can't really work around it.
Let me know if there is something I can do to help fixing it...

Cheers,


[Bug c++/53464] Invalid default value for non-type template parameter is accepted

2012-05-24 Thread schaub.johannes at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53464

Johannes Schaub schaub.johannes at googlemail dot com changed:

   What|Removed |Added

 CC||schaub.johannes at
   ||googlemail dot com

--- Comment #2 from Johannes Schaub schaub.johannes at googlemail dot com 
2012-05-24 07:51:09 UTC ---
Daniel, nice to meet you again :)

See my SO answer and Richard's opinion at
http://stackoverflow.com/a/10727719/34509 .


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

--- Comment #5 from rguenther at suse dot de rguenther at suse dot de 
2012-05-24 07:57:58 UTC ---
On Thu, 24 May 2012, jakub at gcc dot gnu.org wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465
 
 --- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
 07:42:26 UTC ---
 Dropping all might pessimize some code (of course, this is VR_UNDEFINED, so 
 the
 question is if we need to care that much about broken code), like:
 int
 foo (int x, int y)
 {
   int z;
   if (x = 3)
 return 7;
   if (y)
 z = x;
   return z == x;
 }
 
 where the equivalence could be very well kept.  Or
 int
 foo (int y)
 {
   int z;
   int x = bar ();
   if (x = 3)
 return 7;
   if (y)
 z = x;
   return z == x;
 }
 
 In both cases the x_3 in the equivalence bitmap dominates the PHI stmt (in one
 case it is the default parm def, in the second case not).  vrp_meet would
 probably need to be called with gimple stmt in that case on which the meet
 happens.
 
 Anyway, if you think it is overkill, we can just drop the equivalences
 altogether.

I indeed think this is overkill, definitely for the 4.7 branch.

Richard.


[Bug bootstrap/53468] debian/ubuntu changed the location of libraries on the disk which broke bootstrap

2012-05-24 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53468

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

Summary|bootstrap fails on  |debian/ubuntu changed the
   |debian/amd64, unable to |location of libraries on
   |find crti.o and crtn.o  |the disk which broke
   ||bootstrap
   Severity|normal  |enhancement


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
08:42:00 UTC ---
Created attachment 27485
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27485
gcc48-pr53465.patch

Untested fix.


[Bug middle-end/53460] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
09:28:07 UTC ---
Created attachment 27486
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27486
autoreduced testcase


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.3
   Target Milestone|--- |4.7.1
Summary|Internal compiler error: in |[4.7/4.8 Regression]
   |calc_dfs_tree, at   |Internal compiler error: in
   |dominance.c:395 |calc_dfs_tree, at
   ||dominance.c:395
  Known to fail||4.7.0

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
09:29:25 UTC ---
The reduced testcase works with 4.6.  -O -fprofile-generate.


[Bug c++/53469] New: #pragma GCC diagnostic works, but using _Pragma doesn't for -Wunused-local-typedefs

2012-05-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53469

 Bug #: 53469
   Summary: #pragma GCC diagnostic works, but using _Pragma
doesn't for -Wunused-local-typedefs
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org
CC: do...@gcc.gnu.org


Since GCC 4.7, the new warning -Wunused-local-typedefs is supported (PR
c++/33255, 2011-09-08); since GCC 4.8 (2012-05-04) it is enabled by -Wall and
-Wunused.


A typedef was used in a compile-time check whether an expression is constant
(compile-time assert). To allow for the new check but selectively disable the
warning for that line, I tried a pragma.


While using #pragma directly works, using _Pragma fails. The following example
shows no warning for foo but for bar it fails with:

test.cc:19:14: error: typedef ‘myint’ locally defined but not used
[-Werror=unused-local-typedefs]


Expected: _Pragma has the same result as writing #pragma.



#pragma GCC diagnostic error -Wunused-local-typedefs

// Works:

void foo ()
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wunused-local-typedefs
  typedef int myint;
#pragma GCC diagnostic pop
}


// Fails:

#define STRINGIFY(x) #x
#define TEST(x) \
 _Pragma(STRINGIFY(GCC diagnostic ignored -Wunused-local-typedefs)) \
 typedef int myint;
// _Pragma(STRINGIFY(GCC diagnostic pop))
void bar ()
{
  TEST(myint)
}


[Bug c++/32080] Can goto a function try-block

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32080

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|gcc-bugs at gcc dot gnu.org |
   Target Milestone|--- |4.8.0

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
09:32:22 UTC ---
On it.


[Bug lto/53470] New: [4.8 LTO] ICE when linking with -g in splice_child_die, at dwarf2out.c:4264

2012-05-24 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53470

 Bug #: 53470
   Summary: [4.8 LTO] ICE when linking with -g in
splice_child_die, at dwarf2out.c:4264
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


Created attachment 27487
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27487
real-life code preprocessed file

I encountered this while compiling with -g just few files in my project.
make propagated the -g to the linking step that included also object files
previously compiled without -g.

The example below reproduces the error with just one file


c++ -flto -O2 -fPIC iceDebug.ii -shared -c -std=gnu++11 -msse3
[vocms123] /build/vin/newb/CMSSW_6_0_X_2012-05-14-1400 $ c++ -g -flto -O2 -fPIC
iceDebug.o -shared -o bha.so -std=gnu++11 -msse3
In file included from
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/checked_delete.hpp:51:0,
 from :322:
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/smart_ptr/detail/sp_counted_impl.hpp:
In member function 'get_deleter':
/build/ge/new-binutils/a/slc5_amd64_gcc470/external/boost/1.49.0-cms3/include/boost/smart_ptr/detail/sp_counted_impl.hpp:84:5:
internal compiler error: in splice_child_die, at dwarf2out.c:4264
 }
 ^
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
lto-wrapper: c++ returned 1 exit status
/afs/cern.ch/user/i/innocent/w3/gcc47slc5/bin/ld: fatal error: lto-wrapper
failed
collect2: error: ld returned 1 exit status

happens in many other contexts, always at dwarf2out.c:4264

cc version 4.8.0 20120524 (experimental) [trunk revision 187822] (GCC) 
GNU gold (GNU Binutils 2.22.52.20120515) 1.11


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
09:43:13 UTC ---
More reduced:

templatetypename T class OwnPtr {
public:
~OwnPtr();
};
templateclass T class GlyphMetricsMap {
public:
GlyphMetricsMap() { }
OwnPtrint m_pages;
};
class SimpleFontData {
public:
void boundsForGlyph() const;
};
inline __attribute__((__always_inline__))
void SimpleFontData::boundsForGlyph() const
{
  new GlyphMetricsMapint;
}
void offsetToMiddleOfGlyph(const SimpleFontData* fontData)
{
  fontData-boundsForGlyph();
}


[Bug lto/53470] [4.8 LTO] ICE when linking with -g in splice_child_die, at dwarf2out.c:4264

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53470

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
09:47:24 UTC ---
That can unfortunately happen (I thought we ironed out most of these bugs,
but obviously testing coverage for this case isn't as good).


[Bug bootstrap/53466] [4.8 Regression] Bootstrap failure

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53466

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
09:54:30 UTC ---
Author: rguenth
Date: Thu May 24 09:54:25 2012
New Revision: 187824

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187824
Log:
2012-05-24  Richard Guenther  rguent...@suse.de

PR bootstrap/53466
* tree-ssa-live.c (remove_unused_scope_block_p): Properly
handle globals.
(remove_unused_locals): Pass global_unused_vars to
remove_unused_scope_block_p.  Restore code walking all
referenced vars and pruning them.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-live.c


[Bug bootstrap/53466] [4.8 Regression] Bootstrap failure

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53466

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
10:20:14 UTC ---
Fixed.


[Bug debug/53471] New: [4.8 LTO] ICE in pp_base_format, at pretty-print.c:510 (-flto -g)

2012-05-24 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53471

 Bug #: 53471
   Summary: [4.8 LTO] ICE in pp_base_format, at pretty-print.c:510
(-flto -g)
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vincenzo.innoce...@cern.ch


Created attachment 27488
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27488
real-life code (preprocessed file)

bzip2 -d prettyBug.ii.bz2 
[vocms123] /build/vin/newb/CMSSW_6_0_X_2012-05-14-1400 $ c++ -c -O2 -std=c++11
-g prettyBug.ii
[vocms123] /build/vin/newb/CMSSW_6_0_X_2012-05-14-1400 $ c++ -c -O2 -std=c++11
-g prettyBug.ii -flto
'
In file included from
/afs/cern.ch/user/i/innocent/w3/gcc47slc5/include/c++/4.8.0/map:61:0,
 from
/build/vin/newb/CMSSW_6_0_X_2012-05-14-1400/src/CondFormats/EcalCorrections/interface/EcalShowerContainmentCorrections.h:37,
 from
src/CondFormats/EcalCorrections/src/T_EventSetup_EcalShowerContainmentCorrections.cc:1:
in pp_base_format, at pretty-print.c:510
   equal_range(const key_type __x) const
   ^


[Bug c++/53464] Invalid default value for non-type template parameter is accepted

2012-05-24 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53464

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2012-05-24 
10:48:58 UTC ---
Invalid then, thanks.


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
10:50:42 UTC ---
We have an unreachable block:

  # BLOCK 4
  # PRED:
L0:
  operator delete (D.2260_4);
  # SUCC: 5 [100.0%]  (fallthru)

after profiling.  Somehow we transform

void offsetToMiddleOfGlyph(const SimpleFontData*) (const struct SimpleFontData
* fontData)
{
  void * D.2260;

  # BLOCK 2 freq:1
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  D.2260_4 = operator new (1);
  GlyphMetricsMapint::GlyphMetricsMap (D.2260_4);
  goto bb 4;
  # SUCC: 4 [100.0%]  (fallthru,exec) 3 (eh,exec)

  # BLOCK 3
  # PRED: 2 (eh,exec)
L0:
  operator delete (D.2260_4);
  resx 1
  # SUCC:

to

void offsetToMiddleOfGlyph(const SimpleFontData*) (const struct SimpleFontData
* fontData)
{
  void * __gcov_indirect_call_callee.8;
  long int * __gcov_indirect_call_counters.7;
  long int PROF_edge_counter.6;
  void * D.2260;

  # BLOCK 2 freq:1
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  __gcov_indirect_call_counters.7_15 = __gcov_indirect_call_counters;
  __gcov_indirect_call_callee.8_16 = __gcov_indirect_call_callee;
  __gcov_indirect_call_profiler (__gcov_indirect_call_counters.7_15, 2,
offsetToMiddleOfGlyph, __gcov_indirect_call_callee.8_16);
  __gcov_indirect_call_callee = 0B;
  PROF_edge_counter.6_6 =
__gcov0._Z21offsetToMiddleOfGlyphPK14SimpleFontData[0];
  PROF_edge_counter.6_8 = PROF_edge_counter.6_6 + 1;
  __gcov0._Z21offsetToMiddleOfGlyphPK14SimpleFontData[0] =
PROF_edge_counter.6_8;
  D.2260_4 = operator new (1);
  # SUCC: 3 [100.0%]  (fallthru)

  # BLOCK 3 freq:1
  # PRED: 2 [100.0%]  (fallthru)
  PROF_edge_counter.6_9 =
__gcov0._Z21offsetToMiddleOfGlyphPK14SimpleFontData[1];
  PROF_edge_counter.6_10 = PROF_edge_counter.6_9 + 1;
  __gcov0._Z21offsetToMiddleOfGlyphPK14SimpleFontData[1] =
PROF_edge_counter.6_10;
  GlyphMetricsMapint::GlyphMetricsMap (D.2260_4);
  goto bb 6;
  # SUCC: 6 [100.0%]  (fallthru,exec)

  # BLOCK 4
  # PRED:
L0:
  operator delete (D.2260_4);
  # SUCC: 5 [100.0%]  (fallthru)



branch_prob () splits the block this way, invalidating EH edges.


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
11:00:53 UTC ---
Mine.


[Bug c++/53464] Invalid default value for non-type template parameter is accepted

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53464

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
11:27:10 UTC ---
The testcase would be nice for the testsuite though.


[Bug c++/53464] Invalid default value for non-type template parameter is accepted

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53464

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
11:39:10 UTC ---
Later today I will add it.


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
11:51:15 UTC ---
Author: jakub
Date: Thu May 24 11:51:09 2012
New Revision: 187827

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187827
Log:
PR tree-optimization/53465
* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
vr0 into *vr, then vrp_meet that.
(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
have any equivalences.
(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
first time.

* gcc.c-torture/execute/pr53465.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr53465.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c


[Bug tree-optimization/53465] [4.7 regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
11:53:33 UTC ---
Author: jakub
Date: Thu May 24 11:53:29 2012
New Revision: 187828

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187828
Log:
PR tree-optimization/53465
* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
vr0 into *vr, then vrp_meet that.
(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
have any equivalences.
(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
first time.

* gcc.c-torture/execute/pr53465.c: New test.

Added:
branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/execute/pr53465.c
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
branches/gcc-4_7-branch/gcc/tree-vrp.c


[Bug tree-optimization/53465] [4.7/4.8 Regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
Summary|[4.7 regression] wrong code |[4.7/4.8 Regression] wrong
   |with -O1 -ftree-vrp |code with -O1 -ftree-vrp

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
11:53:33 UTC ---
Author: jakub
Date: Thu May 24 11:53:29 2012
New Revision: 187828

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187828
Log:
PR tree-optimization/53465
* tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
vr0 into *vr, then vrp_meet that.
(vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
have any equivalences.
(vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
first time.

* gcc.c-torture/execute/pr53465.c: New test.

Added:
branches/gcc-4_7-branch/gcc/testsuite/gcc.c-torture/execute/pr53465.c
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
branches/gcc-4_7-branch/gcc/tree-vrp.c

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
11:54:30 UTC ---
Fixed.


[Bug tree-optimization/53465] [4.7/4.8 Regression] wrong code with -O1 -ftree-vrp

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53465

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
Summary|[4.7 regression] wrong code |[4.7/4.8 Regression] wrong
   |with -O1 -ftree-vrp |code with -O1 -ftree-vrp

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
11:54:30 UTC ---
Fixed.


[Bug c++/39679] Some absent attributes in the tree-dump should be added

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39679

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC|susanin at ispras dot ru|g...@integrable-solutions.ne
   ||t

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
11:56:37 UTC ---
Hi Gaby. What do you think about this? I suppose, if we like the idea, we could
apply the patch even without a Copyright assignment, because it's so small, and
resolve the issue.


[Bug c++/42129] ICE in pointer difference with sizeof(int)sizeof(void *)

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42129

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
12:04:17 UTC ---
Pinging Nathan, maybe we can do this for 4.8...


[Bug c++/51222] [C++11][SFINAE] Unevaluated combined delete new expression completely broken

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51222

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
   Target Milestone|--- |4.8.0

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
12:16:54 UTC ---
I worked on this and a patch is essentially ready, AFAICS. But there are ABI
implications waiting to be resolved, if I understand correctly.


[Bug c++/24375] Wrong line number in diagnostic

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24375

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
12:32:32 UTC ---
Looking into it.


[Bug bootstrap/53466] [4.8 Regression] Bootstrap failure

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53466

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
12:36:47 UTC ---
Author: rguenth
Date: Thu May 24 12:36:40 2012
New Revision: 187830

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187830
Log:
2012-05-24  Richard Guenther  rguent...@suse.de

PR bootstrap/53466
* g++.dg/debug/pr53466.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/debug/pr53466.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
12:46:57 UTC ---
Author: rguenth
Date: Thu May 24 12:46:53 2012
New Revision: 187831

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187831
Log:
2012-05-24  Richard Guenther  rguent...@suse.de

PR middle-end/53460
* tree-profile.c (tree_profiling): Cleanup the CFG if
execute_fixup_cfg requests it.

* g++.dg/tree-prof/pr53460.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/tree-prof/pr53460.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-profile.c


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

--- Comment #10 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
12:50:21 UTC ---
Author: rguenth
Date: Thu May 24 12:50:15 2012
New Revision: 187832

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187832
Log:
2012-05-24  Richard Guenther  rguent...@suse.de

PR middle-end/53460
* tree-profile.c (tree_profiling): Cleanup the CFG if
execute_fixup_cfg requests it.

* g++.dg/tree-prof/pr53460.C: New testcase.

Added:
branches/gcc-4_7-branch/gcc/testsuite/g++.dg/tree-prof/pr53460.C
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
branches/gcc-4_7-branch/gcc/tree-profile.c


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #10 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
12:50:21 UTC ---
Author: rguenth
Date: Thu May 24 12:50:15 2012
New Revision: 187832

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187832
Log:
2012-05-24  Richard Guenther  rguent...@suse.de

PR middle-end/53460
* tree-profile.c (tree_profiling): Cleanup the CFG if
execute_fixup_cfg requests it.

* g++.dg/tree-prof/pr53460.C: New testcase.

Added:
branches/gcc-4_7-branch/gcc/testsuite/g++.dg/tree-prof/pr53460.C
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
branches/gcc-4_7-branch/gcc/tree-profile.c

--- Comment #11 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
12:50:30 UTC ---
Fixed.


[Bug middle-end/53460] [4.7/4.8 Regression] Internal compiler error: in calc_dfs_tree, at dominance.c:395

2012-05-24 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53460

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #11 from Richard Guenther rguenth at gcc dot gnu.org 2012-05-24 
12:50:30 UTC ---
Fixed.


[Bug fortran/49954] ICE assigning concat expression to an array deferred-length string (realloc on assignment)

2012-05-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49954

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #2 from Tobias Burnus burnus at gcc dot gnu.org 2012-05-24 
13:05:56 UTC ---
(In reply to comment #1)
 I thought about something like:
 +  tmp = rss-string_length;

That's nonsense as rss should be rse and rse is not available in that
function - just expr2.

 However, that yields .array_length (i.e. the LHS) even for
   array_string(:)(1:1)

I think that problem is closely related to PR 51976: For deferred-length
components, using ts.u.cl-backend_decl directly is not possible; one needs to
have var-component and not component.

Here, the issue is rather similar. I believe that one needs some conversion
function which makes string_length available by walking an expr. (It should
also work for the length part of parameterized DT.)


[Bug preprocessor/53463] [4.8 Regression]: system header not recognized, yielding warnings about long long preprocessor constant

2012-05-24 Thread Greta.Yorsh at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53463

Greta Yorsh Greta.Yorsh at arm dot com changed:

   What|Removed |Added

 CC||Greta.Yorsh at arm dot com

--- Comment #2 from Greta Yorsh Greta.Yorsh at arm dot com 2012-05-24 
13:08:57 UTC ---
The following tests fail on arm-none-eabi:

FAIL: gcc.dg/cpp/19990407-1.c (test for excess errors)
FAIL: gcc.dg/cpp/paste12.c (test for excess errors)
FAIL: gcc.dg/cpp/strp1.c (test for excess errors)
FAIL: gcc.dg/cpp/strp2.c (test for excess errors)
FAIL: gcc.dg/struct-ret-libc.c (test for excess errors)

For example:

/work/builds/a9-may/install/bin/arm-none-eabi-gcc
/work/local-checkouts/gcc-fsf/gcc/testsuite/gcc.dg/cpp/19990407-1.c
-mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=neon -fno-diagnostics-show-caret
-pedantic-errors -o 19990407-1.exe
/work/builds/a9-may/install/arm-none-eabi/include/machine/_default_types.h:98:39:
error: use of C99 long long integer constant [-Wlong-long]


[Bug fortran/45170] [F2003] allocatable character lengths

2012-05-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #37 from Tobias Burnus burnus at gcc dot gnu.org 2012-05-24 
13:08:33 UTC ---
(In reply to comment #36)
 REMAINING issues:
 - comment 24 first Does not work., see also comment 34

One has in gfc_trans_assignment_1:

   string_length = gfc_evaluate_now (rse.string_length, rse.pre);
   ...
   if (...)
 gfc_add_block_to_block (block, rse.pre);

where the (...) evaluates to false. (The call in gfc_trans_scalar_assign then
works on rse-string_length, which seems seems to handle the
gfc_add_block_to_block for rse.pre.)

The following works, but I am not sure about the condition; I have the feeling
that it could be handled unconditionally.

--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -6893,3 +6897,2 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr *
expr2, bool init_flag,
   bool scalar_to_array;
-  bool def_clen_func;
   tree string_length;
@@ -7012,9 +7015,4 @@ gfc_trans_assignment_1 (gfc_expr * expr1, gfc_expr *
expr2, bool init_flag,
  parameter available to the caller; gfortran saves it in the .mod files.
*/
-  def_clen_func = (expr2-expr_type == EXPR_FUNCTION
-  || expr2-expr_type == EXPR_COMPCALL
-  || expr2-expr_type == EXPR_PPC);
-  if (gfc_option.flag_realloc_lhs
-expr2-ts.type == BT_CHARACTER
-(def_clen_func || expr2-expr_type == EXPR_OP)
-expr1-ts.deferred)
+  if (gfc_option.flag_realloc_lhs  expr2-ts.type == BT_CHARACTER
+   expr1-ts.deferred)
 gfc_add_block_to_block (block, rse.pre);


[Bug bootstrap/53472] New: contrib/compare-debug should strip out .comment section

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53472

 Bug #: 53472
   Summary: contrib/compare-debug should strip out .comment
section
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


From

http://gcc.gnu.org/ml/gcc-patches/2012-05/msg00284.html
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53197

Now, as to why for me BUILD_CONFIG isn't bootstrap-debug: configure.ac
activates this by default, but then checks if contrib/compare-debug
actually works for comparing a debug and non-debug .o file.  And for
SuSE systems it doesn't, because our system compilers encode some command
line options (among them -g) into a special .comment section.

Any chance you could adjust the script to strip out the .comment section
you mentioned elsewhere, so that you get faster bootstrap with
bootstrap-debug testing too?


[Bug c++/53473] New: [C++11] static constexpr noexcept cannot be specialized

2012-05-24 Thread kretz at kde dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53473

 Bug #: 53473
   Summary: [C++11] static constexpr noexcept cannot be
specialized
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: kr...@kde.org


The following testcase does not compile.

templatetypename T struct A
{
static constexpr T foo() noexcept { return 0; }
};

template constexpr int Aint::foo() noexcept { return 0; }

This would be a common pattern to specialize functions of std::numeric_limits,
but it's currently only possible to specialize the whole numeric_limits class.


[Bug target/53474] New: [4.8 regression] Solaris/x86 bootstrap with Sun as broken: j.e

2012-05-24 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53474

 Bug #: 53474
   Summary: [4.8 regression] Solaris/x86 bootstrap with Sun as
broken: j.e
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
CC: ubiz...@gmail.com
  Host: i386-pc-solaris2.11
Target: i386-pc-solaris2.11
 Build: i386-pc-solaris2.11


As of 20120524, Solaris/x86 bootstrap with Sun as is broken configuring the
stage1
libgcc:

configure:4192: checking whether to use setjmp/longjmp exceptions
configure:: /var/gcc/regression/trunk/11-gcc/build/./gcc/xgcc
-B/var/gcc/regression/trunk/11-gcc/build/./gcc/
-B/vol/gcc/i386-pc-solaris2.11/bin/ -B/vol/gcc/i386-pc-solaris2.11/lib/
-isystem /vol/gcc/i386-pc-solaris2.11/include -isystem
/vol/gcc/i386-pc-solaris2.11/sys-include-c --save-temps -fexceptions 
conftest.c 5
Assembler: conftest.c
conftest.s, line 26 : Illegal mnemonic
Near line: j.e.L10
conftest.s, line 26 : Syntax error
Near line: j.e.L10
conftest.s, line 26 : Illegal mnemonic
Near line: j.e.L10

The only change from 4.7 is:

--- conftest47.s2012-05-24 15:29:43.645405136 +0200
+++ conftest.s  2012-05-24 15:30:03.887899516 +0200
@@ -23,7 +23,7 @@
callclean
 .LEHE1:
cmpl$1, %ebx
-   je  .L10
+   j.e .L10
jmp .L9
 .L7:
movl%eax, %esi

I'm pretty sure one of your last i386 changes is the culprit, but couldn't
immediately pinpoint it.

  Rainer


[Bug target/53474] [4.8 regression] Solaris/x86 bootstrap with Sun as broken: j.e

2012-05-24 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53474

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.8.0


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-24 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

--- Comment #6 from Jack Howarth howarth at nitro dot med.uc.edu 2012-05-24 
13:53:34 UTC ---
(In reply to comment #5)
 gcc hasn't changed the emitted DWARF in this case for more than 12 years.

Actually Apple gcc-4.2.1 doesn't seem to emit AT_comp_dir either but both
llvm-gcc-4.2 and clang do. Since Apple has deprecated support for the legacy
non-llvm based compilers, I believe they are expected the same dwarf output as
from llvm based compilers for the linker now. This means that both AT_name and
AT_comp_dir have to be present in the TAG_compile_unit section of each object
file.


[Bug target/53385] [4.8 Regression] Error: operand out of range after changes for LSHIFT_EXPR in vrp.c

2012-05-24 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53385

--- Comment #14 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-05-24 13:53:03 UTC ---
Author: wschmidt
Date: Thu May 24 13:52:56 2012
New Revision: 187834

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187834
Log:
2012-05-24  Bill Schmidt  wschm...@linux.vnet.ibm.com

Backport from mainline
2012-05-18  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR target/53385
* config/rs6000/rs6000.c (print_operand): Revise code that unsafely
relied on signed overflow behavior.

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


[Bug target/53385] [4.8 Regression] Error: operand out of range after changes for LSHIFT_EXPR in vrp.c

2012-05-24 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53385

--- Comment #14 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-05-24 13:53:03 UTC ---
Author: wschmidt
Date: Thu May 24 13:52:56 2012
New Revision: 187834

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187834
Log:
2012-05-24  Bill Schmidt  wschm...@linux.vnet.ibm.com

Backport from mainline
2012-05-18  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR target/53385
* config/rs6000/rs6000.c (print_operand): Revise code that unsafely
relied on signed overflow behavior.

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

--- Comment #15 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-05-24 13:54:24 UTC ---
Author: wschmidt
Date: Thu May 24 13:54:16 2012
New Revision: 187835

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187835
Log:
2012-05-24  Bill Schmidt  wschm...@linux.vnet.ibm.com

Backport from mainline
2012-05-18  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR target/53385
* config/rs6000/rs6000.c (print_operand): Revise code that unsafely
relied on signed overflow behavior.

Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/config/rs6000/rs6000.c


[Bug target/53385] [4.8 Regression] Error: operand out of range after changes for LSHIFT_EXPR in vrp.c

2012-05-24 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53385

--- Comment #15 from William J. Schmidt wschmidt at gcc dot gnu.org 
2012-05-24 13:54:24 UTC ---
Author: wschmidt
Date: Thu May 24 13:54:16 2012
New Revision: 187835

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187835
Log:
2012-05-24  Bill Schmidt  wschm...@linux.vnet.ibm.com

Backport from mainline
2012-05-18  Bill Schmidt  wschm...@linux.vnet.ibm.com

PR target/53385
* config/rs6000/rs6000.c (print_operand): Revise code that unsafely
relied on signed overflow behavior.

Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/config/rs6000/rs6000.c


[Bug c++/20624] [4.0 Regression] wrong control reaches end of non-void function warning

2012-05-24 Thread peter777778 at hotmail dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20624

online games peter78 at hotmail dot co.uk changed:

   What|Removed |Added

 CC||peter78 at hotmail dot
   ||co.uk

--- Comment #29 from online games peter78 at hotmail dot co.uk 2012-05-24 
13:57:55 UTC ---
http://free-online-games-mmorpg.blogspot.co.uk/


[Bug target/53474] [4.8 regression] Solaris/x86 bootstrap with Sun as broken: j.e

2012-05-24 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53474

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2012-05-24
 AssignedTo|unassigned at gcc dot   |ubizjak at gmail dot com
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2012-05-24 13:59:02 
UTC ---
Created attachment 27489
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27489
Untested patch

Can you please test attached patch?


[Bug fortran/53456] Add time support for VxWorks

2012-05-24 Thread rbmj at verizon dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53456

rbmj at verizon dot net changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #8 from rbmj at verizon dot net 2012-05-24 14:00:00 UTC ---
Fixed in 187806.  Enhancements pending:
http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01579.html


[Bug ada/5911] Support for multilib in Ada

2012-05-24 Thread peter777778 at hotmail dot co.uk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=5911

online games peter78 at hotmail dot co.uk changed:

   What|Removed |Added

 CC||peter78 at hotmail dot
   ||co.uk

--- Comment #29 from online games peter78 at hotmail dot co.uk 2012-05-24 
14:00:32 UTC ---
http://free-online-games-mmorpg.blogspot.co.uk/


[Bug bootstrap/53472] contrib/compare-debug should strip out .comment section

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53472

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu.org
   Target Milestone|--- |4.8.0

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-05-24 14:02:52 
UTC ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01623.html


[Bug c++/53455] boost::python segfault

2012-05-24 Thread ndbecker2 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53455

Neal Becker ndbecker2 at gmail dot com changed:

   What|Removed |Added

 CC||ndbecker2 at gmail dot com

--- Comment #6 from Neal Becker ndbecker2 at gmail dot com 2012-05-24 
14:22:43 UTC ---
I believe I hit the same bug, using extract on a polymorphic type.

In the old code (which segfaults), I used make_constructor, passing object to
it, and using 
extract.

In the new code (which does not segfault), I don't use make_constructor, just
use bp::init.  My segfault 
is gone.  Maybe just luck?

valgrind python test_constellation.py 
==6162== Memcheck, a memory error detector
==6162== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==6162== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==6162== Command: python test_constellation.py
==6162== 
==6162== Invalid read of size 8
==6162==at 0x11B79748:
boost::python::objects::polymorphic_id_generatorQAMconstellationdouble
::execute(void*) (inheritance.hpp:43)
==6162==by 0x13F585A3: boost::(anonymous namespace)::convert_type(void*,
boost::python::type_info, boost::python::type_info, bool) (in
/usr/local/src/boost_1_49_0.hg.nondarray/stage/lib/libboost_python.so.1.49.0)
==6162==by 0x11B857D9:
boost::python::objects::pointer_holderstd::auto_ptrQAMconstellationdouble
, QAMconstellationdouble ::holds(boost::python::type_info, bool)
(pointer_holder.hpp:150)
==6162==by 0x13F50006: boost::python::objects::find_instance_impl(_object*,
boost::python::type_info, bool) (in
/usr/local/src/boost_1_49_0.hg.nondarray/stage/lib/libboost_python.so.1.49.0)
==6162==by 0x13F4B304:
boost::python::converter::rvalue_from_python_stage1(_object*,
boost::python::converter::registration const) (in
/usr/local/src/boost_1_49_0.hg.nondarray/stage/lib/libboost_python.so.1.49.0)
==6162==by 0x11B82F02:
boost::python::converter::arg_rvalue_from_pythonconstellationdouble
const::arg_rvalue_from_python(_object*) (arg_from_python.hpp:299)
==6162==by 0x11B81BEA: boost::python::arg_from_pythonconstellationdouble
const::arg_from_python(_object*) (arg_from_python.hpp:70)
...

This particular code uses inheritance (I rarely use it).  It looks something
like:


BOOST_PYTHON_MODULE(constellation) {

  boost::numpy::initialize();

  class_constellationdouble, boost::noncopyable  (constellation_base,
no_init)
.def (__call__, apply_constellationdouble)
.def (hard_decision, apply_hard_decisiondouble)
.add_property (size, constellationdouble::size)
.add_property (gain, constellationdouble::gain)
;

  class_QAMconstellationdouble , basesconstellationdouble  
(QAMconstellation, no_init)
.def (__init__, make_constructor (qam_from_objectdouble))
.add_property (map, get_map)
.def_pickle(const_pickle_suitedouble())
;
...


[Bug libstdc++/53475] New: Section type conflict errors in libstdc++ testsuite

2012-05-24 Thread Greta.Yorsh at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53475

 Bug #: 53475
   Summary: Section type conflict errors in libstdc++ testsuite
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: greta.yo...@arm.com
CC: paolo.carl...@oracle.com


Failures due to section type conflict in libstdc++-v3 testsuite:

FAIL: 20_util/tuple/creation_functions/tie2.cc (test for excess errors)
Excess errors:
/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/include/tuple:1057:25:
error: std::ignore causes a section type conflict with std::ignore

FAIL: 25_algorithms/stable_sort/49559.cc (test for excess errors)
Excess errors:
/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc:37:11:
error: A causes a section type conflict with A

Known to fail: r187724
Known to work: r187546

Executing on host: /work/builds/a9-may/arm-none-eabi/gcc2/./gcc/g++
-shared-libgcc -B/work/builds/a9-may/arm-none-eabi/gcc2/./gcc -nostdinc++
-L/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/src
-L/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/src/.libs
-B/work/builds/a9-may/install/arm-none-eabi/bin/
-B/work/builds/a9-may/install/arm-none-eabi/lib/ -isystem
/work/builds/a9-may/install/arm-none-eabi/include -isystem
/work/builds/a9-may/install/arm-none-eabi/sys-include
-B/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/./libstdc++-v3/src/.libs
-D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2
-g -O2 -DLOCALEDIR=. -nostdinc++
-I/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/include/arm-none-eabi
-I/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/include
-I/work/local-checkouts/gcc-fsf/libstdc++-v3/libsupc++
-I/work/local-checkouts/gcc-fsf/libstdc++-v3/include/backward
-I/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/util
/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc
libstdc++_tg.o   -std=gnu++0x ./libtestc++.a-Wl,-wrap,exit
-Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -lm   -o ./tie2.exe(timeout
= 600)
In file included from
/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/20_util/tuple/creation_functions/tie2.cc:22:0:
/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/include/tuple:1057:25:
error: std::ignore causes a section type conflict with std::ignore
   const _Swallow_assign ignore{};
 ^

Executing on host: /work/builds/a9-may/arm-none-eabi/gcc2/./gcc/g++
-shared-libgcc -B/work/builds/a9-may/arm-none-eabi/gcc2/./gcc -nostdinc++
-L/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/src
-L/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/src/.libs
-B/work/builds/a9-may/install/arm-none-eabi/bin/
-B/work/builds/a9-may/install/arm-none-eabi/lib/ -isystem
/work/builds/a9-may/install/arm-none-eabi/include -isystem
/work/builds/a9-may/install/arm-none-eabi/sys-include
-B/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/./libstdc++-v3/src/.libs
-D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2
-g -O2 -DLOCALEDIR=. -nostdinc++
-I/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/include/arm-none-eabi
-I/work/builds/a9-may/arm-none-eabi/gcc2/arm-none-eabi/libstdc++-v3/include
-I/work/local-checkouts/gcc-fsf/libstdc++-v3/libsupc++
-I/work/local-checkouts/gcc-fsf/libstdc++-v3/include/backward
-I/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/util
/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc
libstdc++_tg.o   -std=gnu++0x ./libtestc++.a-Wl,-wrap,exit
-Wl,-wrap,_exit -Wl,-wrap,main -Wl,-wrap,abort -lm   -o ./49559.exe(timeout
= 600)
/work/local-checkouts/gcc-fsf/libstdc++-v3/testsuite/25_algorithms/stable_sort/49559.cc:37:11:
error: A causes a section type conflict with A
 const int A[] = { 10 };
   ^


[Bug middle-end/53476] New: [4.8 Regression] FAIL: gcc.dg/attr-weakref-1.c

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53476

 Bug #: 53476
   Summary: [4.8 Regression] FAIL: gcc.dg/attr-weakref-1.c
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


On Linux/x86, revision 187825 gave:

FAIL: gcc.dg/attr-weakref-1.c (test for excess errors)
Excess errors:
attr-weakref-1.c:(.text.startup+0x78): undefined reference to `Wv10a'
attr-weakref-1.c:(.text.startup+0x82): undefined reference to `Wv11a'

WARNING: gcc.dg/attr-weakref-1.c compilation failed to produce executable

Revision 187799 is OK.


[Bug c++/53455] boost::python segfault

2012-05-24 Thread org.gnu.gcc.bugtracker at sotecware dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53455

--- Comment #7 from Jonas Wielicki org.gnu.gcc.bugtracker at sotecware dot 
net 2012-05-24 14:32:37 UTC ---
Interestingly, I am using no_init too, but without supplying an alternative
constructor. I am not at the testing machine right now, but I thought I'd share
that bit of information. Testing whether the bug reoccurs when using bp::init
will follow soon!


[Bug libstdc++/53475] Section type conflict errors in libstdc++ testsuite

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53475

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
14:41:59 UTC ---
Please try to narrow the commit which is causing the problem a bit more: to be
really honest, it's the first time in my life I see this kind of error message
and I really doubt the library itself or even the C++ front-end is the culprit.


[Bug c++/32080] Can goto a function try-block

2012-05-24 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32080

--- Comment #3 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2012-05-24 14:47:12 UTC ---
Author: paolo
Date: Thu May 24 14:47:06 2012
New Revision: 187837

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187837
Log:
/cp
2012-05-24  Paolo Carlini  paolo.carl...@oracle.com

PR c++/32080
* parser.c (cp_parser_ctor_initializer_opt_and_function_body,
cp_parser_function_body): Add a bool parameter, true when parsing
a function-try-block.
(cp_parser_function_try_block): Pass true to the above.
(cp_parser_function_definition_after_declarator,
cp_parser_function_transaction): Adjust.

/testsuite
2012-05-24  Paolo Carlini  paolo.carl...@oracle.com

PR c++/32080
* g++.dg/eh/goto2.C: New.


Added:
trunk/gcc/testsuite/g++.dg/eh/goto2.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/53455] boost::python segfault

2012-05-24 Thread org.gnu.gcc.bugtracker at sotecware dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53455

--- Comment #8 from Jonas Wielicki org.gnu.gcc.bugtracker at sotecware dot 
net 2012-05-24 14:48:23 UTC ---
I was able to use the VM sooner than expected, so sorry for the doublepost.

I found that whether using no_init or init() does not make a difference in my
case. To use init() on the base class, I had to change the pure virtual
function to be non-pure, but that did not affect the result.


[Bug c++/32080] Can goto a function try-block

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32080

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
15:10:03 UTC ---
Fixed.


[Bug c++/53464] Invalid default value for non-type template parameter is accepted

2012-05-24 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53464

--- Comment #6 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org 
2012-05-24 15:12:45 UTC ---
Author: paolo
Date: Thu May 24 15:12:37 2012
New Revision: 187842

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187842
Log:
2012-05-24  Paolo Carlini  paolo.carl...@oracle.com

PR c++/53464
* g++.dg/cpp0x/constexpr-default1.C: New.


Added:
trunk/gcc/testsuite/g++.dg/cpp0x/constexpr-default1.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug c++/53412] Error recovery for class types is poor

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53412

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 2012-05-24 
15:22:08 UTC ---
It's the same issue. Note, the bit about default template arguments is very
easy to fix.

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


[Bug c++/25751] Poor error when templating on undefined types

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25751

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu.org

--- Comment #2 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
15:22:08 UTC ---
*** Bug 53412 has been marked as a duplicate of this bug. ***


[Bug c++/25751] Poor error when templating on undefined types

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25751

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #3 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
15:25:35 UTC ---
Let's see if we can make some progress.


[Bug c++/50134] -Wmissing-prototypes doesn't work for C++

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50134

--- Comment #11 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
15:29:42 UTC ---
Manuel, what happened to this, out of curiosity? I see an Assigned status (but
the Assigned To field still blank) and a documentation patchlet of yours in the
audit trail?!


[Bug middle-end/53476] [4.8 Regression] FAIL: gcc.dg/attr-weakref-1.c

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53476

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |4.8.0

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-05-24 15:31:31 
UTC ---
It is caused by revision 187823:

http://gcc.gnu.org/ml/gcc-cvs/2012-05/msg00820.html


[Bug c++/50477] -Wunused-parameter should not warn about virtual method declarations with bodies

2012-05-24 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50477

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2012-05-24 
15:33:22 UTC ---
Jason, it would be great if you could help us completing the triage of this.


[Bug libstdc++/53477] New: pretty printer fails with: Python Exception type 'exceptions.IndexError' list index out of range

2012-05-24 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53477

 Bug #: 53477
   Summary: pretty printer fails with: Python Exception type
'exceptions.IndexError' list index out of range
Classification: Unclassified
   Product: gcc
   Version: 4.7.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: pl...@agmk.net


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

$ x86_64-gnu-linux-g++ t.cpp -Wall -o t -g2 -gdwarf-4
$ cgdb ./t

in line 15 pretty printer fails with error.

 7│ int main()
 8│ {
 9│ icapSelection_[ /* frame */ 7 ][ /* word */ 3 ].insert( 5 );
10│ icapSelection_[ /* frame */ 7 ][ /* word */ 3 ].insert( 1 );
11│ for ( IcapSelection::const_iterator i = icapSelection_.begin(); i
!= icapSelection_.end(); ++i )
12│ {
13│ IcapSelection::key_type frame( i-first );
14│ IcapSelection::mapped_type const wordBitsetMap( i-second
);
15├─── for ( IcapSelection::mapped_type::const_iterator j =
wordBitsetMap.begin(); j != wordBitsetMap.end(); ++j )
16│ {
17│ IcapSelection::mapped_type::key_type word( j-first
);
18│ IcapSelection::mapped_type::mapped_type const
bits( j-second );
19│ for (
IcapSelection::mapped_type::mapped_type::const_iterator k = bits.begin(); k !=
bits.end(); ++k )
20│ {
21│ unsigned bit( *k );
22│ }
23│ }
24│ }
25│ }
/home/users/pawels/dvm.git/t.cpp

Breakpoint 1, main () at t.cpp:9
(gdb) n
(gdb)
(gdb) p icapSelection_
$1 = std::map with 1 elements = {
  [7] = std::map with 1 elements = {
[3] = std::set with 2 elements = {
  [0] = 1,
  [1] = 5
}
  }
}
(gdb) n
(gdb)
(gdb)
(gdb) p wordBitsetMap
$2 = Python Exception type 'exceptions.IndexError' list index out of range:
std::map with 1 elements


[Bug fortran/53478] New: gfortran segfaults when module name clashes with C binding name of procedure

2012-05-24 Thread solomon.gibbs.lists at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53478

 Bug #: 53478
   Summary: gfortran segfaults when module name clashes with C
binding name of procedure
Classification: Unclassified
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: solomon.gibbs.li...@gmail.com


gfortran segfaults rather than producing a compiler error when a module
procedure is bound with the same name as the module.

e.g.

module exports
implicit none

contains

subroutine f_exports() bind(C, name='exports')
end subroutine

end module exports


gfortran -funderscoring -O0 -g -Wall -c -fmessage-length=0 -o exports.o
../exports.f08
f951.exe: internal compiler error: Segmentation fault

Possibly related to Bug 48858 ?


[Bug debug/53471] [4.8 LTO] ICE in pp_base_format, at pretty-print.c:510 (-flto -g)

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53471

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-24
 CC||rguenth at gcc dot gnu.org
   Target Milestone|--- |4.8.0
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2012-05-24 17:07:47 
UTC ---
It is caused by revision 182479:

http://gcc.gnu.org/ml/gcc-cvs/2011-12/msg00618.html


[Bug lto/53471] [4.7/4.8 Regression] ICE in pp_base_format, at pretty-print.c:510 (-flto -g)

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53471

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

  Component|debug   |lto
   Target Milestone|4.8.0   |4.7.1
Summary|[4.8 LTO] ICE in|[4.7/4.8 Regression] ICE in
   |pp_base_format, at  |pp_base_format, at
   |pretty-print.c:510 (-flto   |pretty-print.c:510 (-flto
   |-g) |-g)


[Bug lto/53470] [4.8 LTO] ICE when linking with -g in splice_child_die, at dwarf2out.c:4264

2012-05-24 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53470

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2012-05-24
 CC||hjl.tools at gmail dot com
 Ever Confirmed|0   |1

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2012-05-24 17:15:57 
UTC ---
Works for me on Linux/x86-64 with revision 187825 and BFD linker on
trunk.  Can you try BFD linker?


[Bug fortran/53478] gfortran segfaults when module name clashes with C binding name of procedure

2012-05-24 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53478

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-05-24
 CC||kargl at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from kargl at gcc dot gnu.org 2012-05-24 17:23:50 UTC ---
Confirmed.
(gdb) bt
#0  0x000202c0103c in strcmp () from /lib/libc.so.7
#1  0x0050aa91 in gfc_verify_binding_labels (sym=0x203cd1280)
at ../../gcc4x/gcc/fortran/resolve.c:9847
#2  0x0052cf40 in do_traverse_symtree (st=0x203c183a0, st_func=0, 
sym_func=0x50a840 gfc_verify_binding_labels)
at ../../gcc4x/gcc/fortran/symbol.c:3386
#3  0x0051c030 in resolve_types (ns=0x203c63600)
at ../../gcc4x/gcc/fortran/resolve.c:13984
#4  0x0051bef8 in resolve_types (ns=0x203c62c00)
at ../../gcc4x/gcc/fortran/resolve.c:13965
#5  0x0050feec in gfc_resolve (ns=0xfff8)
at ../../gcc4x/gcc/fortran/resolve.c:14054
#6  0x00502a48 in gfc_parse_file ()
at ../../gcc4x/gcc/fortran/parse.c:4594
#7  0x0053c90e in gfc_be_parse_file ()
at ../../gcc4x/gcc/fortran/f95-lang.c:191
#8  0x008f57f0 in compile_file () at ../../gcc4x/gcc/toplev.c:552
#9  do_compile () at ../../gcc4x/gcc/toplev.c:1874
#10 0x008f5e4c in toplev_main (argc=2, argv=0x7fffd4e0)
at ../../gcc4x/gcc/toplev.c:1950
#11 0x00499a6d in _start ()
(gdb) up 1
#1  0x0050aa91 in gfc_verify_binding_labels (sym=0x203cd1280)
at ../../gcc4x/gcc/fortran/resolve.c:9847
9847  if (sym-attr.if_source == IFSRC_DECL 
(gdb) list
9842
9843  bind_c_sym = gfc_find_gsymbol (gfc_gsym_root,
sym-binding_label);
9844  if (bind_c_sym != NULL 
9845   strcmp (bind_c_sym-name, sym-binding_label) == 0)
9846{
9847  if (sym-attr.if_source == IFSRC_DECL 
9848   (bind_c_sym-type != GSYM_SUBROUTINE 
9849   bind_c_sym-type != GSYM_FUNCTION) 
9850   ((sym-attr.contained == 1 
9851strcmp (bind_c_sym-sym_name, sym-name) != 0) 
(gdb) print *bind_c_sym
$1 = {priority = 41101, left = 0x0, right = 0x0, name = 0x20400bf80 exports, 
  sym_name = 0x0, mod_name = 0x0, binding_label = 0x0, type = GSYM_MODULE, 
  defined = 1, used = 0, where = {nextc = 0x203ca61f8, lb = 0x203ca61a0}, 
  ns = 0x203c62c00}

Note, sym-binding_label is 0x0


[Bug middle-end/53476] [4.8 Regression] FAIL: gcc.dg/attr-weakref-1.c

2012-05-24 Thread hp at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53476

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

   What|Removed |Added

 CC||hp at gcc dot gnu.org

--- Comment #2 from Hans-Peter Nilsson hp at gcc dot gnu.org 2012-05-24 
17:44:51 UTC ---
Must be universal; cris-elf too, 187822:187825.


[Bug fortran/53478] gfortran segfaults when module name clashes with C binding name of procedure

2012-05-24 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53478

--- Comment #2 from Steve Kargl sgk at troutmask dot apl.washington.edu 
2012-05-24 17:57:26 UTC ---
On Thu, May 24, 2012 at 05:23:50PM +, kargl at gcc dot gnu.org wrote:
 #1  0x0050aa91 in gfc_verify_binding_labels (sym=0x203cd1280)
 at ../../gcc4x/gcc/fortran/resolve.c:9847
 9847  if (sym-attr.if_source == IFSRC_DECL 
 (gdb) list
 9842
 9843  bind_c_sym = gfc_find_gsymbol (gfc_gsym_root,
 sym-binding_label);
 9844  if (bind_c_sym != NULL 
 9845   strcmp (bind_c_sym-name, sym-binding_label) == 0)
 9846{
 9847  if (sym-attr.if_source == IFSRC_DECL 
 9848   (bind_c_sym-type != GSYM_SUBROUTINE 
 9849   bind_c_sym-type != GSYM_FUNCTION) 
 9850   ((sym-attr.contained == 1 
 9851strcmp (bind_c_sym-sym_name, sym-name) != 0) 
 (gdb) print *bind_c_sym
 $1 = {priority = 41101, left = 0x0, right = 0x0, name = 0x20400bf80 
 exports, 
   sym_name = 0x0, mod_name = 0x0, binding_label = 0x0, type = GSYM_MODULE, 
   defined = 1, used = 0, where = {nextc = 0x203ca61f8, lb = 0x203ca61a0}, 
   ns = 0x203c62c00}
 
 Note, sym-binding_label is 0x0


This patch allows the code to compile.  I haven't
tried to construct a longer example that may show
that the module name  may collide with the C binding
name.


Index: resolve.c
===
--- resolve.c   (revision 187464)
+++ resolve.c   (working copy)
@@ -9848,6 +9848,8 @@ gfc_verify_binding_labels (gfc_symbol *s
(bind_c_sym-type != GSYM_SUBROUTINE 
bind_c_sym-type != GSYM_FUNCTION) 
((sym-attr.contained == 1 
+   bind_c_sym-sym_name != NULL
+   sym-name != NULL
 strcmp (bind_c_sym-sym_name, sym-name) != 0) 
   || (sym-attr.use_assoc == 1 
(strcmp (bind_c_sym-mod_name, sym-module) != 0


[Bug c++/53322] Wunused-local-typedefs is not enabled by Wall or Wunused

2012-05-24 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53322

Dodji Seketeli dodji at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Dodji Seketeli dodji at gcc dot gnu.org 2012-05-24 
18:06:09 UTC ---
Fixed in trunk (4.8).


[Bug c/52952] Wformat location info is bad (wrong column number)

2012-05-24 Thread dodji at seketeli dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952

--- Comment #9 from dodji at seketeli dot org dodji at seketeli dot org 
2012-05-24 18:38:40 UTC ---
manu at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org a écrit:

 So either one keeps track of all source locations of all interesting
 characters within strings, which sounds infeasible. Or one needs to
 re-preprocess the format string, creating new locations on-the-fly. Dodji, is
 this possible?

With the current infrastructure, I fear we cannot re-process the format
string *after* the initial pre-processing phase is done, to create new
locations that we'd a in the line maps.

However, briefly looking at the source code, we might be able to pull
this whole shebang off, in a way.

I am thinking that in gcc/c-family/c-format.c:check_format_info_main, we
can arrange for the instance of format_kind_info (that is the result of
parsing the format string) to carry the virtual location  of the
beginning of the format string *and* the offset of the relevant
character we might want to warn about.

Then, later the routines that trigger the warning by analyzing the instance of
format_kind_info could be passed the relevant location for the beginning
of the of the format string as well as the byte offset of the relevant
character I talked about above.  At warning type, it could re-construct
the exact column where of that relevant character, with its byte offset
and the virtual location of the beginning of the format string.

Does that make sense?


[Bug bootstrap/53459] ../../work/libcpp/lex.c:593:18: error: typedef 'check_count' locally defined but not used

2012-05-24 Thread dodji at seketeli dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53459

--- Comment #1 from dodji at seketeli dot org dodji at seketeli dot org 
2012-05-24 18:43:52 UTC ---
Right, and there is:

#elif (GCC_VERSION = 4005)  defined(__ALTIVEC__)

right before the offending line, which explains why I haven't seen the
bootstrap error before committing, as I don't run any ALTIVEC system.

I'll cook up a patch for this.  Thank you for filling this bug.


[Bug fortran/53478] gfortran segfaults when module name clashes with C binding name of procedure

2012-05-24 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53478

--- Comment #3 from Steve Kargl sgk at troutmask dot apl.washington.edu 
2012-05-24 18:44:54 UTC ---
On Thu, May 24, 2012 at 05:57:26PM +, sgk at troutmask dot
apl.washington.edu wrote:
 
 This patch allows the code to compile.  I haven't
 tried to construct a longer example that may show
 that the module name  may collide with the C binding
 name.
 

I've now constructed a simple test and needed to
revise the patch.

troutmask:sgk[263] cat a.f90
module exports

   implicit none

   contains

  subroutine f_exports() bind(C, name='exports')
 print *, 'Exported'
  end subroutine

end module exports
troutmask:sgk[264]  cat e.c
#include stdio.h

void exports(void);

int
main(void)
{
  exports();
  return 0;
}
troutmask:sgk[265] gfc4x -c a.f90
troutmask:sgk[266] cc -o z e.c a.o -L$HOME/work/4x/lib -lgfortran
troutmask:sgk[267] ./z
 Exported

The patch is attached.


[Bug c++/50134] -Wmissing-prototypes doesn't work for C++

2012-05-24 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50134

Manuel López-Ibáñez manu at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||patch
 Status|ASSIGNED|NEW

--- Comment #12 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-05-24 
18:53:07 UTC ---
I was planning to submit this doc patch for approval, but I am quite busy with
personal stuff right now. Feel free to adopt the patch, if you think it is
interesting enough.


[Bug c/52952] Wformat location info is bad (wrong column number)

2012-05-24 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52952

--- Comment #10 from Manuel López-Ibáñez manu at gcc dot gnu.org 2012-05-24 
19:05:26 UTC ---
(In reply to comment #9)
 manu at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org a écrit:
 
  So either one keeps track of all source locations of all interesting
  characters within strings, which sounds infeasible. Or one needs to
  re-preprocess the format string, creating new locations on-the-fly. Dodji, 
  is
  this possible?
 
 With the current infrastructure, I fear we cannot re-process the format
 string *after* the initial pre-processing phase is done, to create new
 locations that we'd a in the line maps.

Could you elaborate on the reasons for this? Is it impossible to create new
locations on the fly? 

As a brute-force approach, we at least should be able to re-preproces the whole
file, no? Could we do this by invoking libcpp directly rather than calling a
command? 

 Does that make sense?

This implies that the diagnostics code would need to handle a byte offset, no? 

And I am not sure this will handle well the case of split strings and macro
expansion, like Clang does.


[Bug c++/53479] New: Control flow analysis too alarming with switch over an enum class

2012-05-24 Thread 0xd34df00d at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53479

 Bug #: 53479
   Summary: Control flow analysis too alarming with switch over an
enum class
Classification: Unclassified
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: 0xd34df...@gmail.com


Created attachment 27492
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27492
A very simple testcase

If a non-void function consists of a switch over a variable of an enum class,
and all possible values of the enum class are listed in the cases, and each
case ends with a return, gcc 4.6 and later still emits a control reaches end
of non-void function warning. gcc 4.5 and earlier don't exhibit such behavior
(as well as clang, if that matters). See the attached file for an example.

While this is a somewhat reasonable behavior for switches over a plain enum, I
doubt it is OK to emit this warning, at least, with such a generic option as
-Wreturn-type. If neither case succeeds, then you have had an UB somewhere in
your code previously, but I doubt it's good to warn the user in the switch.

Moreover, adding a 'default' clause allows to shoot yourself in the foot later
when adding one more field in the enum — the compiler won't warn you that you
didn't check it. Adding a dummy return after the switch seems more like a
kludge.

If there are strong considerations for this warning in this case, I suggest
moving it to a separate warning class, like -Wreturn-enum-class or something
like that. This way those who don't need this check will be able to disable it
without hurting other cases where it's useful for them.


[Bug c/53480] New: warning may be used uninitialized issued with -m32 but not with -m64

2012-05-24 Thread gbburkhardt at verizon dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53480

 Bug #: 53480
   Summary: warning may be used uninitialized issued with -m32
but not with -m64
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: gbburkha...@verizon.net


For the following program, a warning is issued with -m32, but not with
-m64.

armis@armis-00:~$ gcc -c -O2 -g -Wall -m32 -std=gnu99 tt.c
tt.c: In function ‘sub’:
tt.c:18:29: warning: ‘v0.minValue’ may be used uninitialized in this function
[-Wuninitialized]
tt.c:21:29: warning: ‘v0.maxValue’ may be used uninitialized in this function
[-Wuninitialized]
armis@armis-00:~$ gcc -c -O2 -g -Wall -m64 -std=gnu99 tt.c
armis@armis-00:~$

#include stdio.h
typedef struct {
double minValue, maxValue;
} Range;

void getNewRange(Range*);

void sub() 
{
Range v0, v1;

for (int i=0; i  2; i++) {
getNewRange(v1);
if (i == 0) {
v0.minValue = v1.minValue;
v0.maxValue = v1.minValue;
} else {
if (v0.minValue  v1.minValue)
v0.minValue = v1.minValue;

if (v0.maxValue  v1.maxValue)
v0.maxValue = v1.maxValue;
}
}

printf(min=%f, max=%f\n, v0.minValue, v0.maxValue);   
}

armis@armis-00:~$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.6.1-9ubuntu3' --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-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin
--enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu
Thread model: posix
gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3)


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-24 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

--- Comment #7 from Jack Howarth howarth at nitro dot med.uc.edu 2012-05-24 
19:35:09 UTC ---
Are we really sure that gen_compile_unit_die() shouldn't being emitting calling
add_comp_dir_attribute  in this case. It seems that the origin of test...

  /* Don't add cwd for built-in.  */
  if (!IS_ABSOLUTE_PATH (filename)  filename[0] != '')
add_comp_dir_attribute (die);

Dates back to...

Author: amylaar
Date:   Wed Jun 4 17:19:36 2003 UTC (8 years, 11 months ago)
Changed paths:  3
Log Message:
* c-decl.c (c_init_decl_processing): Clear input_file_name
while building common nodes.
* dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
Don't add working directory for strings like built-in .

The reasoning for that change is described in the patch proposal at
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00149.html
which says...

I have found that pch/system-1.c fails on sh-elf because
the function that is called by BUILD_VA_LIST_TYPE generates
some declarations which end up in the debugging output for
this testcase.  toplev.c has previously set the input filename
to that of the main file - which is different when you compile
a header than when you do an ordinary source compilation.
This causes an anadorned system-1.h to be considered among
the source files in the pch case (even though it does nothing
but include other header files).  When dwarf2out sees an input
file without a dir separator, it puts the current working directory
in the list of directories to search.

The patch was revised a number of times...

http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00289.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00151.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00279.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00284.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00289.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00301.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00303.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00308.html
http://gcc.gnu.org/ml/gcc-patches/2003-06/msg00337.html

Reading through reviews doesn't give much confidence that this code is test is
bullet-proof.


[Bug tree-optimization/53480] warning may be used uninitialized issued with -m32 but not with -m64

2012-05-24 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53480

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

  Component|c   |tree-optimization

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-24 
19:41:07 UTC ---
This warning depends on optimization.  In this case, it depends on sra doing
something.


[Bug c++/50477] -Wunused-parameter should not warn about virtual method declarations with bodies

2012-05-24 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50477

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2012-05-24 
19:46:02 UTC ---
I sympathize with your argument, but I think that some users will want the
current behavior.  One way you could work around this that wouldn't involve
uglifying every affected function would be to add

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wunused-parameter



#pragma GCC diagnostic pop

around the header.


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-24 Thread howarth at nitro dot med.uc.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

--- Comment #8 from Jack Howarth howarth at nitro dot med.uc.edu 2012-05-24 
19:52:04 UTC ---
Are we sure this test for...

  /* Don't add cwd for built-in.  */
  if (!IS_ABSOLUTE_PATH (filename)  filename[0] != '')
add_comp_dir_attribute (die);

is still required? The original description says When dwarf2out sees an input
file without a dir separator, it puts the current working directory
in the list of directories to search.. However this change predates

r70189
Author: aoliva
Date:   Tue Aug 5 21:15:57 2003 UTC (8 years, 9 months ago)
Changed paths:  17
Log Message:
* c.opt: Introduce -fworking-directory.
* doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it.
* c-common.h (flag_working_directory): Declare.
* c-common.c (flag_working_directory): Define.
* c-opts.c (c_common_handle_options): Set it.
(sanitize_cpp_opts): Set...
* cpplib.h (struct cpp_options): ... working_directory option.
(struct cpp_callbacks): Add dir_change.
* cppinit.c (read_original_filename): Call...
(read_original_directory): New.  Look for # 1 directory//
and process it.
(cpp_read_main_file): Call dir_change callback if working_directory
option is set.
* gcc.c (cpp_unique_options): Pass -g*.
* c-lex.c (cb_dir_change): New.
(init_c_lex): Set dir_change callback.
* toplev.c (src_pwd): New static variable.
(set_src_pwd, get_src_pwd): New functions.
* toplev.h (get_src_pwd, set_src_pwd): Declare.
* dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd().
* dwarf2out.c (gen_compile_unit_die): Likewise.
* dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise.  

which changed...

--- trunk/gcc/dwarf2out.c   2003/08/01 21:51:13 70072
+++ trunk/gcc/dwarf2out.c   2003/08/05 21:15:57 70189
@@ -9506,7 +9506,7 @@
 static void
 add_comp_dir_attribute (dw_die_ref die)
 {
-  const char *wd = getpwd ();
+  const char *wd = get_src_pwd (); 
   if (wd != NULL)
 add_AT_string (die, DW_AT_comp_dir, wd);
 }

so that DW_AT_comp_dir pointed at the source directory rather than at the
working directory. Might that not eliminate dwarf2out putting the current
working directory
in the list of directories to search? Perhaps the hack...

  /* Don't add cwd for built-in.  */
  if (!IS_ABSOLUTE_PATH (filename)  filename[0] != '')

is no longer required post revision 70189.


[Bug fortran/53481] New: Allow for gfortran (f951) specs option

2012-05-24 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53481

 Bug #: 53481
   Summary: Allow for gfortran (f951) specs option
Classification: Unclassified
   Product: gcc
   Version: 4.8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org


Cf. http://gcc.gnu.org/ml/fortran/2012-05/msg00135.html

As far as I know there is no spec f951, and there is no way to use the
specs file to change the options passed to the Fortran compiler.  The
Fortran frontend doesn't use any named specs that you can change; the
specs are compiled into the driver program directly, from the source
file gcc/fortran/lang-specs.h.


Seemingly, cc1plus supports spec files, cf. gcc -dumpspecs


[Bug c++/53479] Control flow analysis reports warnings in switch over an enum class even if all possible values have their branches

2012-05-24 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53479

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2012-05-24 
19:57:19 UTC ---
  Foo f = Foo(2);
  assert( DoFoo( f ) );

Undefined behaviour.


[Bug fortran/53481] Allow for gfortran (f951) specs option

2012-05-24 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53481

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2012-05-24 
19:59:20 UTC ---
The trick is to edit cc1_options instead of *cc1.


[Bug c++/53479] Control flow analysis reports warnings in switch over an enum class even if all possible values have their branches

2012-05-24 Thread 0xd34df00d at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53479

--- Comment #2 from Georg Rudoy 0xd34df00d at gmail dot com 2012-05-24 
20:04:56 UTC ---
(In reply to comment #1)
   Foo f = Foo(2);
   assert( DoFoo( f ) );
 
 Undefined behaviour.

Yes, it is. And isn't it happening at the point of cast of an integer to the
enum class type?


[Bug bootstrap/53459] ../../work/libcpp/lex.c:593:18: error: typedef 'check_count' locally defined but not used

2012-05-24 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53459

Dodji Seketeli dodji at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2012-05-24
 AssignedTo|unassigned at gcc dot   |dodji at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1


[Bug debug/53453] darwin linker expects both AT_name and AT_comp_dir debug notes

2012-05-24 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53453

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2012-05-24 
20:12:52 UTC ---
It is correct and desirable.  If you really need and we want to continue the
endless stream of workarounds for Darwin toolchain bugs, then you'd add some
target macro TARGET_FORCE_AT_COMP_DIR or similar, define it in darwin.h and if
non-zero, force addition of the attribute even when the filename is absolute.


[Bug fortran/53456] Add time support for VxWorks

2012-05-24 Thread jb at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53456

--- Comment #9 from Janne Blomqvist jb at gcc dot gnu.org 2012-05-24 20:19:46 
UTC ---
Author: jb
Date: Thu May 24 20:19:37 2012
New Revision: 187846

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=187846
Log:
PR 53456 CPU timing fallback using clock_gettime.

2012-05-24  Janne Blomqvist  j...@gcc.gnu.org

PR fortran/53456
* intrinsics/time_1.h (gf_cputime): Fallback for clock_gettime.


Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/intrinsics/time_1.h


  1   2   >