[Bug c++/44175] [C++0x] decltype sometimes cannot recurse

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
06:08:54 UTC ---
I wonder if for at least Linux host the driver shouldn't attempt to increase
stack size for its children, say to 32MB if possible:

{
  struct rlimit rl;
  if (getrlimit (RLIMIT_STACK, rl) == 0)
{
  if (rl.rlim_cur != RLIM_INFINITY
   rl.rlim_cur  32*1024*1024
   (rl.rlim_max == RLIM_INFINITY
  || rl.rlim_max  rl.rlim_cur))
{
  if (rl.rlim_max == RLIM_INFINITY || rl.rlim_max = 32*1024*1024)
rl.rlim_cur = 32*1024*1024;
  else
rl.rlim_cur = rl.rlim_max;
  setrlimit (RLIMIT_STACK, rl);
}
}
}

then I guess maximum tinst depth could go back to 1024.


[Bug target/49257] -mfpmath=sse generates x87 instructions on 32 bits OS

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #15 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
06:14:19 UTC ---
It would need @plt for flag_pic, and somehow ensure that the %ebx is
initialized, plus whatever else is needed for calls on e.g. darwin etc.


[Bug fortran/18918] Eventually support Fortran 2008's coarrays [co-arrays]

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

--- Comment #57 from Tobias Burnus burnus at gcc dot gnu.org 2011-06-08 
06:28:44 UTC ---
Author: burnus
Date: Wed Jun  8 06:28:41 2011
New Revision: 174796

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

PR fortran/18918
* gfortran.h (gfc_statement): Add ST_LOCK and ST_UNLOCK.
(gfc_exec_op): Add EXEC_LOCK and EXEC_UNLOCK.
(gfc_code): Add expr4.
* match.h (gfc_match_lock, gfc_match_unlock): New prototypes.
* match.c (gfc_match_lock, gfc_match_unlock,
lock_unlock_statement): New functions.
(sync_statement): Bug fix, avoiding double freeing.
(gfc_match_if): Handle LOCK/UNLOCK statement.
* parse.c (decode_statement, next_statement,
gfc_ascii_statement): Ditto.
* st.c (gfc_free_statement): Handle LOCK and UNLOCK.
* resolve.c (resolve_lock_unlock): New function.
(resolve_code): Call it.
* dump-parse-tree.c (show_code_node): Handle LOCK/UNLOCK.
* frontend-passes.c (gfc_code_walker): Optimize gfc_code's expr4.

2011-06-08  Tobias Burnus  bur...@net-b.de

PR fortran/18918
* gfortran.dg/coarray_lock_1.f90: New.
* gfortran.dg/coarray_lock_2.f90: New.


Added:
trunk/gcc/testsuite/gfortran.dg/coarray_lock_1.f90
trunk/gcc/testsuite/gfortran.dg/coarray_lock_2.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/dump-parse-tree.c
trunk/gcc/fortran/frontend-passes.c
trunk/gcc/fortran/gfortran.h
trunk/gcc/fortran/match.c
trunk/gcc/fortran/match.h
trunk/gcc/fortran/parse.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/st.c
trunk/gcc/testsuite/ChangeLog


[Bug middle-end/49310] [4.7 Regression] Compile time hog in var-tracking emit

2011-06-08 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49310

--- Comment #2 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-06-08 07:16:06 UTC ---
the testcase from 

http://gcc.gnu.org/bugzilla/attachment.cgi?id=20290

can be used more conveniently. It runs in 1.4s and still spends 50% of time in
var-tracking emit. 

Using callgrind, most of the time is in emit_notes_for_changes, calling
htab_traverse.


[Bug c++/49311] Missing static const symbol with -O0

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

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2011-06-08 
08:02:19 UTC ---
(In reply to comment #4)
 (In reply to comment #3)
  This is a dup of 
 
 I think there are several hundred already. Not worth marking them as 
 duplicate,
 it just further upsets people receiving notifications for a problem that has 
 no
 solution.

Agreed, I provided them only for the reporter to get some additional background
to explain why this is definitely definitely not a bug.

(In reply to comment #5)
  I think there are several hundred already.
 
 Oh, this list was helpful, thanks!
 
  Not worth marking them as duplicate,
  it just further upsets people receiving notifications for a problem that 
  has no
  solution.
 
 Looking at http://www2.research.att.com/~bs/bs_faq2.html#in-class I found this
 
   You can take the address of a static member if (and only if) it has an
 out-of-class definition
 
 Of course this is not a promise you don't need an out-of-class definition if
 you don't take the address. Gcc uses the assumption it can take the address in
 -O0 mode, but is this assumption justified? It's at least surprising.
 
 class A
 {
 public:
   static const unsigned first = 1;
   enum { second = 2 };
 };
 
 should behave similar in all cases address of first isn't taken.

But your code requires an lvalue because the result of the conditional operator
is an lvalue if both arguments are lvalues, so it must have an address.

That's why casting the operands or adding zero makes it link, because it makes
the operand an rvalue, so the address is not needed.

This is explained in the duplicate PRs I linked to, please read them, there's
nothing more to discuss IMHO.


[Bug c++/49322] [4.7 Regression] Many libstdc++ testsuite failures

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

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug middle-end/49319] [4.7 regression] g++.dg/abi/thunk5.C FAILs on Tru64 UNIX

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

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug tree-optimization/49320] gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c FAILs with random flags

2011-06-08 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49320

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||irar at il dot ibm.com
 Resolution||DUPLICATE

--- Comment #1 from Ira Rosen irar at il dot ibm.com 2011-06-08 09:48:39 UTC 
---
It's a duplicate of pr 49239. The preprocessed source doesn't have the
initialization of res, that was added in r174469.

Ira

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


[Bug testsuite/49239] Random gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c failure

2011-06-08 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49239

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

 CC||zsojka at seznam dot cz

--- Comment #6 from Ira Rosen irar at il dot ibm.com 2011-06-08 09:48:39 UTC 
---
*** Bug 49320 has been marked as a duplicate of this bug. ***


[Bug middle-end/49310] [4.7 Regression] Compile time hog in var-tracking emit

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||aoliva at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
09:54:29 UTC ---
Using -g -O2 -fbounds-check instead of -g -O1 -fbounds-check cures it,
or e.g. -g -O1 -fbounds-check --param max-vartrack-expr-depth=5
speeds it up.  The programming style is very weird, and combined with
-fbounds-check which results in huge number of bbs doesn't help it,
plus the expression chains for the debug vars really seem to be very long (and
at the points where bounds checking failures are reported the relevant
registers
holding the expressions are reused for something else).


[Bug tree-optimization/49320] gcc.dg/vect/vect-strided-u8-i8-gap4-unknown.c FAILs with random flags

2011-06-08 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49320

--- Comment #2 from Zdenek Sojka zsojka at seznam dot cz 2011-06-08 09:54:08 
UTC ---
Yes, sorry, I had testsuite results with preprocessed sources from an older
revision, and when looking at the testcase sources, I was checking current
trunk - where it is already fixed.


[Bug c++/49311] Missing static const symbol with -O0

2011-06-08 Thread hartmut.schirmer at arcormail dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49311

--- Comment #7 from Hartmut Schirmer hartmut.schirmer at arcormail dot de 
2011-06-08 09:57:58 UTC ---
  class A
  {
  public:
static const unsigned first = 1;
enum { second = 2 };
  };
  
  should behave similar in all cases address of first isn't taken.
 
 But your code requires an lvalue because the result of the conditional 
 operator
 is an lvalue if both arguments are lvalues, so it must have an address.
 
 That's why casting the operands or adding zero makes it link, because it makes
 the operand an rvalue, so the address is not needed.
 
 This is explained in the duplicate PRs I linked to, please read them, there's
 nothing more to discuss IMHO.

Does the way I use an rvalue change it's definition?
So if A and B are rvalue's does
  c = x ? A : B
to mutate to lvalues?

Looking at http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#454
the compiler should handle static const data members like rvalues wherever
possible. Currently gcc does so nearly all the time, the few exceptions cause
really unexpected troubles


[Bug rtl-optimization/49303] ICE: vinsn_detach, at sel-sched-ir.c:1277 w/ -O3 on ia64 in r174558

2011-06-08 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49303

--- Comment #4 from Alexander Monakov amonakov at gcc dot gnu.org 2011-06-08 
09:59:26 UTC ---
Author: amonakov
Date: Wed Jun  8 09:59:23 2011
New Revision: 174801

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174801
Log:
PR rtl-optimization/49303
* sel-sched.c (move_op): Use correct type for 'res'.  Verify that
code_motion_path_driver returned 0 or 1.
(sel_region_finish): Clear h_d_i_d.

testsuite:
* gcc.target/ia64/pr49303.c: New test.


Added:
trunk/gcc/testsuite/gcc.target/ia64/pr49303.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/sel-sched.c
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/49303] ICE: vinsn_detach, at sel-sched-ir.c:1277 w/ -O3 on ia64 in r174558

2011-06-08 Thread amonakov at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49303

Alexander Monakov amonakov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from Alexander Monakov amonakov at gcc dot gnu.org 2011-06-08 
10:00:46 UTC ---
Fixed on the trunk.  No backports needed.


[Bug c++/49311] Missing static const symbol with -O0

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

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org 2011-06-08 
10:27:28 UTC ---
(In reply to comment #7)
 
 Does the way I use an rvalue change it's definition?

I don't understand the question, I don't know what you mean by the definition
of an rvalue.

 So if A and B are rvalue's does
   c = x ? A : B
 to mutate to lvalues?

No of course not.

If A and B are both lvalues of the same type then (x ? A : B) is an lvalue. 
Otherwise (x ? A : B) is an rvalue.

This is a simplification, check the rules for yourself in the C++ standard if
you want the gory details.

 Looking at http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#454
 the compiler should handle static const data members like rvalues wherever
 possible. Currently gcc does so nearly all the time, the few exceptions cause
 really unexpected troubles

The proposed resolution shown in DR 454 was not applied to the draft, it was
resolved differently.

G++ handles your code correctly, it is invalid C++. Consider if foo is
rewritten as:

unsigned foo(int direction)
{
   const unsigned char result = direction==0 ? A::PEN : A::NEN;
   return result;
}

This takes a reference to an lvalue, which requires it to have an address.

The solution is simple, just fix your code.

This is not a bug.


[Bug target/49257] -mfpmath=sse generates x87 instructions on 32 bits OS

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

--- Comment #16 from Uros Bizjak ubizjak at gmail dot com 2011-06-08 10:31:13 
UTC ---
(In reply to comment #15)
 It would need @plt for flag_pic, and somehow ensure that the %ebx is
 initialized, plus whatever else is needed for calls on e.g. darwin etc.

We can probably use (parts of) i386.c,ix86_expand_call here.


[Bug c++/46003] cond5.C fails for ARM EABI tests.

2011-06-08 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46003

Dodji Seketeli dodji at gcc dot gnu.org changed:

   What|Removed |Added

 CC||dodji at gcc dot gnu.org

--- Comment #6 from Dodji Seketeli dodji at gcc dot gnu.org 2011-06-08 
10:42:09 UTC ---
Shouldn't this be fixed by the commit of  PR c++/49134 ?


[Bug testsuite/49323] New: FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times *

2011-06-08 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49323

   Summary: FAIL: g++.dg/debug/dwarf2/integer-typedef.C
scan-assembler-times *
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: ja...@gcc.gnu.org, dang...@gcc.gnu.org,
r...@gcc.gnu.org, do...@gcc.gnu.org


On x86_64-apple-darwin10 at revision 174779
g++.dg/debug/dwarf2/integer-typedef.C fails with

FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times
[^\\n\\r]*DW_AT_name: S2048ul 1
FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times
[^\\n\\r]*DW_AT_MIPS_linkage_name: _ZN1SILm2048EE1fEm 1

for both -m32 and -m64. Grepping the assembler I see

.ascii S2048ul\0# DW_AT_name

and

.ascii _ZN1SILm2048EE1fEm\0# DW_AT_MIPS_linkage_name
.byte0x87,0x40# uleb128 0x2007; (DW_AT_MIPS_linkage_name)

The test has been introduced by revision 174742 and the failures are along the
line of pr49288.


[Bug middle-end/21953] [4.3/4.4/4.5/4.6/4.7 Regression] Many tmpdir-gcc.dg-struct-layout-1 tests fail on Tru64 UNIX V5.1B

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

--- Comment #15 from Rainer Orth ro at gcc dot gnu.org 2011-06-08 11:39:16 
UTC ---
Author: ro
Date: Wed Jun  8 11:39:14 2011
New Revision: 174804

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174804
Log:
PR middle-end/21953
* gcc.dg/compat/struct-layout-1_generate.c (dg-options): Use
-fno-common on alpha*-dec-osf*.
* g++.dg/compat/struct-layout-1_generate.c (dg-options): Likewise.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
trunk/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c


[Bug c++/49322] [4.7 Regression] Many libstdc++ testsuite failures

2011-06-08 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49322

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-06-08 
11:47:36 UTC ---
On x86_64-apple-darwin10 at revision 174779 I only see

FAIL: 20_util/is_move_assignable/value.cc (test for excess errors)
WARNING: 20_util/is_move_assignable/value.cc compilation failed to produce
executable

The error is

FAIL: 20_util/is_move_assignable/value.cc (test for excess errors)
Excess errors:
/opt/gcc/work/libstdc++-v3/testsuite/20_util/is_move_assignable/value.cc:60:1:
internal compiler error: tree check: expected tree that contains 'common'
structure, have '' in gt_ggc_mx_lang_tree_node, at ./gt-cp-tree.h:147


[Bug c/48825] libiberty psignal lacks const modifier, failing to compile when HAVE_PSIGNAL is undefined

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

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

   What|Removed |Added

 CC||hp at gcc dot gnu.org

--- Comment #6 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-06-08 
11:48:36 UTC ---
It Would Be Nice if the eventual solution could be backported to open gcc
branches.

(My autotester, when trying to pick up newlib updates, fails for all branches
so it seems anyone trying to build a toolchain with a recent newlib and *any*
gcc will be hit.)


[Bug middle-end/21953] [4.3/4.4/4.5/4.6/4.7 Regression] Many tmpdir-gcc.dg-struct-layout-1 tests fail on Tru64 UNIX V5.1B

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

Rainer Orth ro at gcc dot gnu.org changed:

   What|Removed |Added

 Status|SUSPENDED   |NEW
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-06/msg00638.htm
   ||l
 CC||ro at gcc dot gnu.org
   Target Milestone|4.3.6   |4.7.0
   Severity|critical|normal

--- Comment #16 from Rainer Orth ro at gcc dot gnu.org 2011-06-08 11:50:56 
UTC ---
Most parts fixed, adjusting target, initial analysis of the remaining ones in
the
patch submission above.


[Bug testsuite/49323] FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times *

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.06.08 11:52:22
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
11:52:22 UTC ---
Created attachment 24466
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24466
gcc47-pr49323.patch

Does this work for you?


[Bug c++/44175] [C++0x] decltype sometimes cannot recurse

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

--- Comment #9 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
12:16:49 UTC ---
Additionally, if the only deep recursion problem is during GC, perhaps:
--- gcc/cp/cp-tree.h   2011-05-27 21:13:30.946483346 +0200
+++ gcc/cp/cp-tree.h  2011-06-08 14:15:06.743389464 +0200
@@ -4635,7 +4635,7 @@ struct cp_declarator {
 };

 /* A level of template instantiation.  */
-struct GTY(()) tinst_level {
+struct GTY((chain_next (%h.next))) tinst_level {
   /* The immediately deeper level in the chain.  */
   struct tinst_level *next;


could fix it and allow going back to 1024 from 900.


[Bug testsuite/49323] FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times *

2011-06-08 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49323

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-06-08 
12:19:17 UTC ---
 Created attachment 24466 [details]
 gcc47-pr49323.patch

 Does this work for you?

On x86_64-apple-darwin10, yes it does (I cannot test powerpc-apple-darwin9
right now), thanks.


[Bug c++/49322] [4.7 Regression] Many libstdc++ testsuite failures

2011-06-08 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49322

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-06-08 
12:31:20 UTC ---
I have forgotten to say that I see the failure with -m64 only.


[Bug c++/49322] [4.7 Regression] Many libstdc++ testsuite failures

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

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 2011-06-08 
12:45:07 UTC ---
Indeed, this is caused by
http://gcc.gnu.org/viewcvs?root=gccview=revrev=174772
deduction_tsubst_fntype is called, creates a TREE_LIST, pushes it using
push_tinst_level, then during tsubst call (much deeper in the backtrace fact)
add_pending_template is called, which sticks pointer to current_tinst_level
(whose chain goes back to struct tinst_level that points to the TREE_LIST
from deduction_tsubst_fntype), then some pop_tinst_level calls are called
and finally tsubst returns to deduction_tsubst_fntype, which calls
pop_tinst_level (but, all those pop_tinst_level calls just tweak
current_tinst_level, they don't change what add_pending_template remembered)
and then ggc_frees the TREE_LIST, which means that during GC
pending_templates(-next)*-tinst(-next)*-decl suddenly points to
freed memory and thus crashes.
Either it shouldn't be freed, or before calling pop_tinst_level it should be
reset to NULL or something similar (current_tinst_level-decl = NULL;
pop_tinst_level (); ggc_free (tinst); ?), or it is wrong that
add_pending_template has been called or remembered that.


[Bug target/47739] gcc 4.4.5 with target powerpc-wrs-vxworks fails to compile

2011-06-08 Thread jan.sm...@alcatel-lucent.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47739

Jan Smets jan.sm...@alcatel-lucent.com changed:

   What|Removed |Added

 CC||jan.sm...@alcatel-lucent.co
   ||m

--- Comment #1 from Jan Smets jan.sm...@alcatel-lucent.com 2011-06-08 
12:49:26 UTC ---
I have this issue as well.

My source (4.6) has #ifdef TARGET_POSIX_IO in libgcov.c to pick the correct
mkdir (when TARGET_POSIX_IO is undefined). My target is i686-wrs-vxworks (and
--with-headers=..)  and TARGET_POSIX_IO is defined somehow.

I tried disabling gcov with --disable-coverage or --enable-coverage=no , but it
did not prevent the compile problems.


[Bug fortran/47601] [OOP] Internal Error: mio_component_ref(): Component not found

2011-06-08 Thread kristopher.kuhlman at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47601

--- Comment #29 from Kris kristopher.kuhlman at gmail dot com 2011-06-08 
13:12:59 UTC ---
(In reply to comment #27)
 r174416 fixes all the test cases in this PR (except comment #11, which is
 invalid). I'm glad we finally nailed this one.
 
 Closing as fixed. Thanks for reporting, Rich!

Will this fix be applied to 4.6 or 4.5?


[Bug middle-end/49310] [4.7 Regression] Compile time hog in var-tracking emit

2011-06-08 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49310

--- Comment #4 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-06-08 13:23:00 UTC ---
(In reply to comment #3)
 Using -g -O2 -fbounds-check instead of -g -O1 -fbounds-check cures it,
 or e.g. -g -O1 -fbounds-check --param max-vartrack-expr-depth=5
 speeds it up.  The programming style is very weird, and combined with
 -fbounds-check which results in huge number of bbs doesn't help it,
 plus the expression chains for the debug vars really seem to be very long (and
 at the points where bounds checking failures are reported the relevant
 registers
 holding the expressions are reused for something else).

Not so sure if I agree with your statement about my programming style ;-). 

sure timings explode with increasing max-vartrack-expr-depth, maybe the table
below can help to pick a good default ?

max-vartrack-expr-depth=2: var-tracking emit :  32.66 (33%) usr
max-vartrack-expr-depth=3: var-tracking emit :  33.03 (34%) usr
max-vartrack-expr-depth=4: var-tracking emit :  33.66 (34%) usr
max-vartrack-expr-depth=5: var-tracking emit :  33.64 (34%) usr
max-vartrack-expr-depth=6: var-tracking emit :  34.34 (35%) usr
max-vartrack-expr-depth=7: var-tracking emit :  35.98 (35%) usr
max-vartrack-expr-depth=8: var-tracking emit :  42.52 (37%) usr
max-vartrack-expr-depth=9: var-tracking emit :  48.79 (39%) usr
max-vartrack-expr-depth=10: var-tracking emit :  53.09 (42%) usr
max-vartrack-expr-depth=12: var-tracking emit :  74.52 (46%) usr
max-vartrack-expr-depth=14: var-tracking emit : 118.90 (63%) usr
max-vartrack-expr-depth=16: var-tracking emit : 313.50 (81%) usr
max-vartrack-expr-depth=18: var-tracking emit : 833.84 (91%) usr
max-vartrack-expr-depth=20: var-tracking emit :2527.38 (97%) usr


[Bug c++/49321] Incorrect Optimization O2 and O3 on Shift Operation for 64 bit Integers

2011-06-08 Thread silver24k at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49321

Yu Simin silver24k at gmail dot com changed:

   What|Removed |Added

 CC||silver24k at gmail dot com

--- Comment #3 from Yu Simin silver24k at gmail dot com 2011-06-08 13:26:40 
UTC ---
I've tried GCC 4.6 (r174793, i786-pc-mingw32) and it gives the 'corrent' result
(-01 -02 or -03):
i[0]=0, i[1]=8


[Bug middle-end/49310] [4.7 Regression] Compile time hog in var-tracking emit

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

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
13:34:42 UTC ---
10 was the minimal value to get reasonable debug info in some cases (e.g.
gcc.dg/guality/), so perhaps 20 is too much and we should go down to the
default of 12-15.


[Bug middle-end/49310] [4.7 Regression] Compile time hog in var-tracking emit

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

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
13:38:51 UTC ---
Or alternatively make it more dynamic, like if in one function the maximum
level is reached or almost reached (so it could be checked only in
vt_expand_loc_callback) more than some parameter times (like several millions
or so), it would temporarily drop down the limit to a lower value.
It would probably need to recheck all var locations at that spot though,
because
dummy and real expansion should match.


[Bug fortran/47601] [OOP] Internal Error: mio_component_ref(): Component not found

2011-06-08 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47601

--- Comment #30 from janus at gcc dot gnu.org 2011-06-08 13:39:42 UTC ---
(In reply to comment #29)
 Will this fix be applied to 4.6 or 4.5?

Usually we only backport regression fixes, and since this is technically not a
regression, the default procedure would be to *not* backport it to earlier
releases.

However, if your life depends on it, we could maybe consider having an
exception from that rule and doing a backport to the 4.6 branch (which is still
young), given that the patch is relatively small and simple.

Doing a backport to 4.5 is probably not worth it, though. 4.5 has only very
rudimentary support for CLASSes and polymorphism, and I would not expect anyone
to seriously use it for larger OOP codes ...


[Bug fortran/47601] [OOP] Internal Error: mio_component_ref(): Component not found

2011-06-08 Thread kristopher.kuhlman at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47601

--- Comment #31 from Kris kristopher.kuhlman at gmail dot com 2011-06-08 
13:49:21 UTC ---
(In reply to comment #30)
 (In reply to comment #29)
  Will this fix be applied to 4.6 or 4.5?

 However, if your life depends on it, we could maybe consider having an
 exception from that rule and doing a backport to the 4.6 branch (which is 
 still
 young), given that the patch is relatively small and simple.

Although my *life* does not depend on it, I think backporting this fix to 4.6
would be beneficial, because it will be a while before 4.7 will be released and
used widely.  

It seems to me that these sort of fixes are required before people will start
using the more modern features of Fortran03/gfortran.

Thanks for fixing this, regardless.


[Bug lto/49302] [4.7 Regression] FAIL: gcc.dg/lto/20110201-1 c_lto_20110201-1_0.o-c_lto_20110201-1_0.o

2011-06-08 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49302

--- Comment #9 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-06-08 
13:51:34 UTC ---
Hm, this isn't going to work for all cases.  When I reproduce the problem on
powerpc64-linux without forcing a hardware square root, I see:

spawn /home/wschmidt/gcc/build/gcc-mainline-pr49302/gcc/xgcc
-B/home/wschmidt/gcc/build/gcc-mainline-pr49302/gcc/ c_lto_20110201-1_0.o -O0
-flto -O2 -ffast-math -fuse-linker-plugin -m32 -o gcc-dg-lto-20110201-1-01

/tmp/cc1mUEPp.ltrans0.ltrans.o: In function `foo':

cc1mUEPp.ltrans0.o:(.text+0x5c): undefined reference to `pow'

cc1mUEPp.ltrans0.o:(.text+0x74): undefined reference to `sqrt'

collect2: error: ld returned 1 exit status

compiler exited with status 1
output is:
/tmp/cc1mUEPp.ltrans0.ltrans.o: In function `foo':

cc1mUEPp.ltrans0.o:(.text+0x5c): undefined reference to `pow'

cc1mUEPp.ltrans0.o:(.text+0x74): undefined reference to `sqrt'

collect2: error: ld returned 1 exit status


Expanding cabs to sqrt(r*r + i*i) will still leave an unresolved reference to
sqrt.


[Bug target/49305] SH Target: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403

2011-06-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49305

--- Comment #3 from Kazumoto Kojima kkojima at gcc dot gnu.org 2011-06-08 
14:03:02 UTC ---
It's my fault after all.  The patch r174586 should check the mode
parameter too.  Without checking mode, insn-recog routines are
confused and the combine pass makes insns with wrong insn_code.
Now I'm testing

--- ORIG/trunk/gcc/config/sh/predicates.md2011-06-04 10:16:51.0
+0900
+++ trunk/gcc/config/sh/predicates.md2011-06-08 18:55:09.0 +0900
@@ -395,6 +395,7 @@
 }

   if ((mode == QImode || mode == HImode)
+   mode == GET_MODE (op)
(MEM_P (op)
   || (GET_CODE (op) == SUBREG  MEM_P (SUBREG_REG (op)
 {
@@ -432,6 +433,7 @@
 return 0;

   if ((mode == QImode || mode == HImode)
+   mode == GET_MODE (op)
(MEM_P (op)
   || (GET_CODE (op) == SUBREG  MEM_P (SUBREG_REG (op)
 {

I'll apply it if it survives the tests on sh-elf and sh4-unknown-linux-gnu
and put the patch in #1 into my TODO list.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2011-06-08 Thread xunxun1982 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #64 from PcX xunxun1982 at gmail dot com 2011-06-08 14:26:05 UTC 
---
I found that the shared or static gcc edition made a great difference of the wx
unicode release mono dll size.
-
At first, I build the gcc 4.6 with --enable-static --enable-shared, and then
I use the gcc edition to compile wx2.8.12 unicode release mono dll, that is, 

mingw32-make -f makefile.gcc CXXFLAGS=-Os -fno-keep-inline-dllexport
LDFLAGS=-static -Wl,-s

this gcc edition can produce the wx dll size about 6-7M, and the dll depends no
any gcc dll.

Another day, I build the gcc4.6 with --enable-static --disable-shared, and
then do the similar thing, that is,

mingw32-make -f makefile.gcc CXXFLAGS=-Os -fno-keep-inline-dllexport
LDFLAGS=-Wl,-s

this gcc edition can produce the wx dll size very large, about 17M, and the dll
depends no any gcc dll, too.


That's why?

Thanks.


[Bug fortran/49324] New: iso_varying_string and reshape fail

2011-06-08 Thread jjcogliati-r1 at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49324

   Summary: iso_varying_string and reshape fail
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jjcogliati...@yahoo.com


Iso varying string seems to fail with reshape.

I am using the iso_varying_string module available from 
http://www.fortran.com/iso_varying_string.f95

My test case is:
!--
program test_ivs
  use iso_varying_string
  implicit none

  type(varying_string),dimension(:,:),allocatable :: array2d
  type(varying_string) :: extra
  integer :: i,j

  allocate(array2d(2,3))

  extra = four

  array2d(:,:) = reshape((/ var_str(1), 
   var_str(2), var_str(3), 
   extra, var_str(5), 
   var_str(six) /), (/ 2, 3 /))


  print *,array2d second ,ubound(array2d),(('//char(array2d(i,j))//'
,i=1,size(array2d,1)),j=1,size(array2d,2))

end program test_ivs
!-

With this test case, I get the output:

 array2d second2   3 '' '0' 'P' 'P!' '0' '!' 


If I modify it to:
!-
program test_ivs_no_reshape
  use iso_varying_string
  implicit none

  type(varying_string),dimension(:,:),allocatable :: array2d
  type(varying_string) :: extra
  integer :: i,j

  allocate(array2d(2,3))

  extra = four

  array2d(:,1) = (/ var_str(1), var_str(2) /)
  array2d(:,2) = (/ var_str(3), extra /)
  array2d(:,3) = (/ var_str(5), var_str(six) /)

  print *,array2d first ,ubound(array2d),(('//char(array2d(i,j))//'
,i=1,size(array2d,1)),j=1,size(array2d,2))

end program test_ivs_no_reshape
!--

I get the following output:
 array2d first2   3 '1' '2' '3' 'four' '5' 'six' 

which is what I expected. 

$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=/home/jjc/gcc/gcc_460_install/libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.6.0/configure --prefix=/home/jjc/gcc/gcc_460_install/
Thread model: posix
gcc version 4.6.0 (GCC) 

Compiling:
$ gfortran -Wall -c iso_varying_string.f95
$ gfortran -Wall -o test_ivs.f90 test_ivs.f90 iso_varying_string.o
$ ./test_ivs
 array2d second2   3 '' '0' 'P' 'PQ�' '0' 'Q�'


[Bug c++/46003] cond5.C fails for ARM EABI tests.

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

--- Comment #7 from Janis Johnson janis at gcc dot gnu.org 2011-06-08 
15:49:02 UTC ---
Test g++.dg/template/cond5.C starts passing for arm-none-linux-gnueabi with
r174682, the fix for PR49134 mentioned in comment 6.


[Bug fortran/49324] iso_varying_string and reshape fail

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

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu.org

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-06-08 
16:22:37 UTC ---
Not an analysis, just some observations ...

I get different results with different compilers:
gfortran 4.7:
 array2d second2   3 '' '@' '`' '`A�▒' '@' 'A�'
ifort 11.1:
  array2d second2   3 '/' '/' '/' '/' '/' '/'
NAG 5.1 and pgf90 10.1-0:
  array2d second  2 3 '' '' '' 'four' '' ''
pathf95 and g95:
 array2d second  2 3 '1' '2' '3' 'four' '5' 'six'

[Neither NAG with -C=all -C=undefined, nor ifort -check all, nor gfortran
-fcheck=all show an error.]


I tried also the other ISO Varying String implementations at
ftp://ftp.nag.co.uk/sc22wg5/ISO_VARYING_STRING/Sample_Module/ , but I fail to
get a consistent result with those.

ifort with either iso_vst.f90 or iso_vsta.f90:
 array2d second2   3 '1' '1' '1' '1' '1' '1'
gfortran, g95, NAG, pgf90 and pathf95 with iso_vst.f90
and with g95, pgf90 and pathf95 for iso_vsta.f90:
 array2d second2   3 '1' '2' '3' 'four' '5' 'six'
gfortran with iso_vsta.f90:
 array2d second2   3 '' '�' '�' '�jb' '�' 'b'
NAG with iso_vsta.f90:
  ALLOCATABLE array allocatable array component is not currently allocated
  Program terminated by fatal error
  In S_ASS_S, line 342 of iso_vsta.f90
  Called by TEST_IVS, line 13 of hj4f.f90


[Bug fortran/49324] iso_varying_string and reshape fail

2011-06-08 Thread jjcogliati-r1 at yahoo dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49324

--- Comment #2 from Joshua Cogliati jjcogliati-r1 at yahoo dot com 2011-06-08 
16:30:16 UTC ---
(In reply to comment #1)
 Not an analysis, just some observations ...
 
 I get different results with different compilers:
 gfortran 4.7:
  array2d second2   3 '' '@' '`' '`A�▒' '@' 'A�'
 [Neither NAG with -C=all -C=undefined, nor ifort -check all, nor gfortran
 -fcheck=all show an error.]
 
 
 I tried also the other ISO Varying String implementations at
 ftp://ftp.nag.co.uk/sc22wg5/ISO_VARYING_STRING/Sample_Module/ , but I fail to
 get a consistent result with those.
 
 gfortran, g95, NAG, pgf90 and pathf95 with iso_vst.f90
 and with g95, pgf90 and pathf95 for iso_vsta.f90:
  array2d second2   3 '1' '2' '3' 'four' '5' 'six'
 gfortran with iso_vsta.f90:
  array2d second2   3 '' '�' '�' '�jb' '�' 'b'

Hm.  http://www.fortran.com/iso_varying_string.f95 and iso_vsta.f90 use:

TYPE VARYING_STRING
 PRIVATE 
 CHARACTER,DIMENSION(:),ALLOCATABLE :: chars
ENDTYPE VARYING_STRING 

iso_vst.f90 uses:
TYPE VARYING_STRING
 PRIVATE 
 CHARACTER,DIMENSION(:),POINTER :: chars = NULL()
ENDTYPE VARYING_STRING 


so for gfortran at least, it seems to happen when there is a allocatable
character array, but not a pointer.


[Bug other/49325] New: Incorrect target HAVE_INITFINI_ARRAY check

2011-06-08 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49325

   Summary: Incorrect target HAVE_INITFINI_ARRAY check
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: other
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


HAVE_INITFINI_ARRAY support was added by:

http://gcc.gnu.org/ml/gcc-patches/2002-11/msg00387.html

Unfortunately, it checks if host supports init_array/fini_array
sections, not target.  It will generate wrong result
for cross compiler.


[Bug c++/49326] New: Lambda arguments should not have a default value

2011-06-08 Thread vanboxem.ruben at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49326

   Summary: Lambda arguments should not have a default value
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: trivial
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: vanboxem.ru...@gmail.com


Currently, GCC 4.6.1 warns in pedantic mode when a lambda is written that
provides  default value for an argument:

[](bool a, bool=true){ return !a;} }

Which, according to the FDIS n3290 section 5.1.2/5, should be illegal and thus
give an error. 


As the detection code is already present/functional (in -pedantic mode),
changing that into an error shouldn't be hard.


[Bug c++/49326] Lambda arguments should not have a default value

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

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-06-08 
16:50:42 UTC ---
If you get a warning with -pedantic that usually means it's a G++ extension.

If you don't want the extension use -pedantic-errors so it is rejected


[Bug other/49325] Incorrect target HAVE_INITFINI_ARRAY check

2011-06-08 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49325

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

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-06/msg00659.htm
   ||l

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2011-06-08 16:50:49 
UTC ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00659.html


[Bug c++/49326] Lambda arguments should not have a default value

2011-06-08 Thread vanboxem.ruben at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49326

--- Comment #2 from Ruben Van Boxem vanboxem.ruben at gmail dot com 
2011-06-08 16:54:34 UTC ---
I compiled with -std=c++0x, so GCC extensions should be turned off.


[Bug c++/49326] Lambda arguments should not have a default value

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

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org 2011-06-08 
17:05:06 UTC ---
No, that's not how it works, read the manual for -std and -pedantic.


[Bug lto/49302] [4.7 Regression] FAIL: gcc.dg/lto/20110201-1 c_lto_20110201-1_0.o-c_lto_20110201-1_0.o

2011-06-08 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49302

--- Comment #10 from William J. Schmidt wschmidt at gcc dot gnu.org 
2011-06-08 17:07:42 UTC ---
Proposed fix:  http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00661.html


[Bug c++/49327] New: Parse error involving templated method inside templated class

2011-06-08 Thread robinei at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49327

   Summary: Parse error involving templated method inside
templated class
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: robi...@gmail.com


Compiler invocation: g++ -ftemplate-depth-128 -O0 -fno-inline -Wall -g -c -o
buggy.o buggy.cpp
Platform: both win32 and linux

I have attached (and pasted) reduced code that exhibit the behavior, with
explanation.

CODE:


templatetypename Arg1 // REMOVE THIS LINE TO REMOVE PROBLEM
struct Delegate {
template class T
static void from_method(T *object_ptr) {}
};

templatetypename Arg1
struct Event {
typedef DelegateArg1 DelegateType; // REMOVE Arg1 TO REMOVE PROBLEM

template class T
void connect_method(T *object_ptr) {
// The following line fails with:
// buggy.cpp:16:36: error: expected primary-expression before '' token
DelegateType::from_methodT(object_ptr);
}
};

int main(int argc, char *argv[]) {
return 0;
}


[Bug c++/49327] Parse error involving templated method inside templated class

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

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-06-08 
17:25:34 UTC ---
You want:

  DelegateType::template from_methodT(object_ptr);


[Bug c++/49327] Parse error involving templated method inside templated class

2011-06-08 Thread robinei at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49327

--- Comment #2 from robinei at gmail dot com 2011-06-08 17:35:22 UTC ---
(In reply to comment #1)
 You want:
 
   DelegateType::template from_methodT(object_ptr);

Doh! thanks


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

2011-06-08 Thread sje at cup dot hp.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49191

Steve Ellcey sje at cup dot hp.com changed:

   What|Removed |Added

 CC||sje at cup dot hp.com

--- Comment #6 from Steve Ellcey sje at cup dot hp.com 2011-06-08 17:35:43 
UTC ---
What would be the best way to implement 'dg-effective-target strict-align'?
A target list would be the easiest but a program that can pass/fail based
on STRICT_ALIGNMENT would probably be more robust.  I am not sure what such a
program would look like though.  Like memcpy-3.c?  I don't think we want the
dg-effective-target routines using -fdump flags like memcpy-3.c does.


[Bug testsuite/49323] FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times *

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

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
17:36:15 UTC ---
Author: jakub
Date: Wed Jun  8 17:36:12 2011
New Revision: 174813

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174813
Log:
PR testsuite/49323
* g++.dg/debug/dwarf2/integer-typedef.C: Add -fno-merge-debug-strings
to dg-options, match also DW_AT_linkage_name.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/debug/dwarf2/integer-typedef.C


[Bug c++/28220] Segfault with pch and trying to do IMA with C++

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

--- Comment #4 from Paolo Carlini paolo.carlini at oracle dot com 2011-06-08 
17:41:07 UTC ---
Andrew, does it make sense to have this PR still open?


[Bug c++/49326] Lambda arguments should not have a default value

2011-06-08 Thread vanboxem.ruben at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49326

Ruben Van Boxem vanboxem.ruben at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #4 from Ruben Van Boxem vanboxem.ruben at gmail dot com 
2011-06-08 17:48:53 UTC ---
Ok, my mistake, I compiled with -std=c++0x -pedantic, which (as I'm reading in
the manual now) turns off GCC extensions and makes  program adhere to strict
standards... But emits warnings only. I should use -pedantic-errors then. OK.
That works as it should in this case. Thanks.


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

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

--- Comment #8 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
17:48:11 UTC ---
I meant (*p)++; instead of *p++; sorry.


[Bug testsuite/49323] FAIL: g++.dg/debug/dwarf2/integer-typedef.C scan-assembler-times *

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
17:49:06 UTC ---
Fixed.


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

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

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-06-08 
17:47:32 UTC ---
Perhaps something like:
union { int i; char c[8]; } u;
int
main ()
{
  int *p;
  asm volatile ( : =r (p) : 0 (u.c[1]));
  *p++;
  return 0;
}
compile+run and check for zero exit code?  Perhaps __ia64__ should be
explicitly listed as strict alignment in addition to that, because I believe it
will
succeed there, just with annoying messages in dmesg.


[Bug middle-end/49308] [4.7 Regression] segfault in rest_of_handle_ud_dce () at gcc/gcc/dce.c:518

2011-06-08 Thread arthur.j.odwyer at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49308

Arthur O'Dwyer arthur.j.odwyer at gmail dot com changed:

   What|Removed |Added

 CC||arthur.j.odwyer at gmail
   ||dot com

--- Comment #10 from Arthur O'Dwyer arthur.j.odwyer at gmail dot com 
2011-06-08 17:50:12 UTC ---
Here's another reduced test case, in C, for what looks like the same bug:

cat test.c EOF
extern unsigned g_63;
extern int g_169;
int F(unsigned left, unsigned int right) {
  return right ? 0 : (unsigned short)left;
}
void func_73(unsigned p_75) {
for (unsigned l_120 = 0; l_120  3; ++l_120) {
if (p_75)
  continue;
g_169 = (unsigned) F(g_63 ^ l_120, p_75);
}
g_169 = 1;
}
EOF
gcc -w -std=c99 -O2 -ggdb test.c

[segmentation fault]

This test case is reduced from the output of Csmith 2.1.0 (git hash 210eda7f,
https://github.com/Quuxplusone/csmith/), using the following command line:
csmith --paranoid --no-longlong --no-pointers --arrays --no-jumps --no-consts
--no-volatiles --no-checksum --no-divs --no-muls --no-bitfields
--no-packed-struct -s 575277166


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

2011-06-08 Thread dave at hiauly1 dot hia.nrc.ca
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49191

--- Comment #9 from dave at hiauly1 dot hia.nrc.ca 2011-06-08 17:59:18 UTC ---
 Perhaps something like:
 union { int i; char c[8]; } u;
 int
 main ()
 {
   int *p;
   asm volatile ( : =r (p) : 0 (u.c[1]));
   *p++;
   return 0;
 }
 compile+run and check for zero exit code?  Perhaps __ia64__ should be
 explicitly listed as strict alignment in addition to that, because I believe 
 it
 will
 succeed there, just with annoying messages in dmesg.

Same on hppa-linux.  Kernel will fixup unaligned access.

Dave


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

2011-06-08 Thread sje at cup dot hp.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49191

--- Comment #10 from Steve Ellcey sje at cup dot hp.com 2011-06-08 18:12:40 
UTC ---
How about compiling this with -Wcast-align and looking for a warning message:

char *y;
typedef char __attribute__ ((__aligned__(__BIGGEST_ALIGNMENT__))) c;
c *z;
void foo(void)
{
z = (c *) y;
}


I get a warning on IA64 but none on X86.  The warning is coming from
c-typeck.c.

x.c: In function 'foo':
x.c:6:13: warning: cast increases required alignment of target type
[-Wcast-align]


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

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

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.08 19:12:29
 Ever Confirmed|0   |1

--- Comment #11 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-06-08 
19:12:29 UTC ---
 I get a warning on IA64 but none on X86.  The warning is coming from
 c-typeck.c.
 
 x.c: In function 'foo':
 x.c:6:13: warning: cast increases required alignment of target type
 [-Wcast-align]

The warning is predicated on STRICT_ALIGNMENT being nonzero so this seems to be
a good idea.  You could add -Werror to get an error and test the exit code.


[Bug fortran/49328] New: Internal compiler error due to explicit array bounds in contained routine argument

2011-06-08 Thread david.sagan at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49328

   Summary: Internal compiler error due to explicit array bounds
in contained routine argument
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: david.sa...@gmail.com


Consider the following program:

!---

module test_mod
contains
subroutine twiss3_at_start ()

implicit none

type t_struct
  real beta, alpha, gamma, phi
end type

type (t_struct) b
real g(6,6), tune3

call mode1_calc (g(3:4, 3:4), tune3, b)

contains

subroutine mode1_calc (gg, tune, twiss)

type (t_struct) twiss
real gg(2,2), tune

twiss%beta = gg(2,2)**2

end subroutine
end subroutine
end module


!---

compiling gives:

lnx4103:~/dcs/bmad_distribution/bmad_dist/test gfortran --version
GNU Fortran (GCC) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.

lnx4103:~/dcs/bmad_distribution/bmad_dist/test gfortran -c -O2 test.f90
test.f90: In function 'twiss3_at_start':
test.f90:14:0: internal compiler error: in build2_stat, at tree.c:3681
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


Removing the -O2 compile option fixes things. Also changing real gg(2,2) to
real gg(:,:) also fixes things.


[Bug middle-end/49191] gcc.dg/memcpy-3.c FAILs on SPARC

2011-06-08 Thread sje at cup dot hp.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49191

--- Comment #12 from Steve Ellcey sje at cup dot hp.com 2011-06-08 20:07:04 
UTC ---
Checking for a warning using check_no_compiler_messages seems as easy or easier
then checking the return code so I did that.  I have submitted a patch to
gcc-patches.

http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00673.html


[Bug fortran/49328] Internal compiler error due to explicit array bounds in contained routine argument

2011-06-08 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49328

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-06-08 
20:11:38 UTC ---
Confirmed on gcc4.5.2 and 4.5.3, but AFAICT this has been fixed on gcc4.6 and
4.7 (trunk) between revisions 17 and 170140.


[Bug c++/49329] New: Static method with std::string parameter gets messed up with non-static method with bool parameter

2011-06-08 Thread swante2 at web dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49329

   Summary: Static method with std::string parameter gets messed
up with non-static method with bool parameter
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: swan...@web.de


I want a static and a non-static method with the same name in a class like
this:

//main.cpp
#include string
class cc {
public:
void xx (bool b) {return;}
static void xx (std::string str) {return;}
};
int main(int argc, char **argv) {
cc instance;
instance.xx(true);
cc::xx(test string); //error: cannot call member function
//'void cc::xx(bool)' without object
return 0;
}

When compiled with: g++ -o test main.cpp
I get the following error:
error: cannot call member function 'void cc::xx(bool)' without object
The error vanishes when I change the name of the non-static method, or
when I explicitly convert the char*-test string into a std::string, or when I
change the bool-parameter of the non-static method to an int-parameter;
But it's still a nasty, strange bug.

I'm using gcc 4.5.2 on ubuntu 11.04.


[Bug c/49330] New: Integer arithmetic on addresses optimised with pointer arithmetic rules

2011-06-08 Thread harald at gigawatt dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49330

   Summary: Integer arithmetic on addresses optimised with pointer
arithmetic rules
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: har...@gigawatt.nl


#include stdint.h
int x, y;
int main(void) {
  uintptr_t px = (uintptr_t) x;
  uintptr_t py = (uintptr_t) y;
  volatile uintptr_t d = px - py;
  uintptr_t p = py + d;
  x = 1;
  *(int *) p = 2;
  return x;
}

gcc 4.6(20110603) returns 1 at -O1 or higher. configure options:

--build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --prefix=/usr
--sysconfdir=/etc --program-suffix=-4.6 --enable-languages=c,c++
--enable-checking --enable-build-with-cxx

As far as I can see, this program is perfectly valid and is required to return
2. gcc seems to be optimising on the assumption that an addition to y will not
result in a pointer to a distinct object (and so stores 2 in y), but that
assumption is only correct for a pointer addition, which the above is not.


[Bug fortran/49328] Internal compiler error due to explicit array bounds in contained routine argument

2011-06-08 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49328

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-06-08 
20:22:40 UTC ---
 Confirmed on gcc4.5.2 and 4.5.3, but AFAICT this has been fixed on gcc4.6 and
 4.7 (trunk) between revisions 17 and 170140.

Sorry I did not read the tests correctly, the range is between r158253 and
r159105.


[Bug c++/49329] Static method with std::string parameter gets messed up with non-static method with bool parameter

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

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-06-08 
20:25:50 UTC ---
I think GCC is correct here.  EDG gives a similar error.


[Bug c/49330] Integer arithmetic on addresses optimised with pointer arithmetic rules

2011-06-08 Thread harald at gigawatt dot nl
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49330

--- Comment #1 from Harald van Dijk harald at gigawatt dot nl 2011-06-08 
20:42:04 UTC ---
A similar example, but one which does not convert the integer back to a
pointer:

#include stdio.h
#include stdlib.h
int a;
int main() {
  unsigned long b = (unsigned long) a - 134518548;
  volatile unsigned long c = b;
  if (c == 0) {
if (b != 0) abort ();
  }
  printf(%lu\n, c);
  return a;
}

This should never abort. It aborts on my system (with -m32).


[Bug fortran/49331] New: Accepts invalid specification expressions

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

   Summary: Accepts invalid specification expressions
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org


gfortran currently compiles http://www.fortran.com/iso_varying_string.f95 with
-std=f2003 without any error.

Expected: gfortran rejects the program with an error messages.


Crayftn correctly rejects the program with:

  character(LEN=len(string))   :: char_string
^
ftn-355 crayftn: ERROR CHAR_AUTO, File = iso_varying_string.f90, Line =
861, Column = 19
Generic interface LEN is referenced in a declarative expression in
a [sub]module.  Specific LEN_ must be completely specified prior to
being referenced.


The function being use is the innocently looking:

pure function char_auto (string) result (char_string)
  type(varying_string), intent(in) :: string
  character(LEN=len(string))   :: char_string

However, the specific function to which then LEN() resolves is not the
intrinsic LEN, but the specific function LEN_, which is defined in the same
module - but (crucially!) later than the function char_auto, which uses it.
That's invalid!


For a shorter example, see interpretation request J3/11-101, F08/0050, which
passed already J3 and will be voted on soon by WG5. Cf.
http://j3-fortran.org/doc/year/11/11-101r1.txt
(Note: If the file is edited, the revision number is incremented, please
remember to check whether there is, e.g., a 11-101r2.txt.)


[Bug c++/12255] exception-specification ignored on pointer to function

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

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org
Summary|exception-specifications|exception-specification
   |unchecked during assignment |ignored on pointer to
   |of pointer to function  |function
   Severity|enhancement |normal

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2011-06-08 
21:22:30 UTC ---
The underlying issue is that G++ just ignores exception-specifications on
non-function declarations.  I think this choice originated in the uncertainty
about whether or not the exeception-specification would become part of a
function type rather than remain associated with the declaration.  And as it
happens, DR 92 (http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_active.html#92)
is still open...


[Bug c++/49329] Static method with std::string parameter gets messed up with non-static method with bool parameter

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

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-06-08 
21:29:03 UTC ---
(In reply to comment #0)
 I want a static and a non-static method with the same name

you might want to rethink that

cc::xx is a qualified name lookup, so can find both overloads of cc::xx

The implicit pointer-to-bool conversion is a better conversion sequence than
the user-defined conversion char*-to-std::string so it is selected, but calling
a member function without an an object is obviously ill-formed


[Bug c++/49107] [C++0x][4.7 Regression] incomplete type regression with std::pair

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

--- Comment #19 from Jason Merrill jason at gcc dot gnu.org 2011-06-08 
21:35:05 UTC ---
Author: jason
Date: Wed Jun  8 21:35:02 2011
New Revision: 174820

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174820
Log:
PR c++/49107
* cp-tree.def (DEFERRED_NOEXCEPT): New.
* cp-tree.h (struct tree_deferred_noexcept): New.
(DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New.
(DEFERRED_NOEXCEPT_SPEC_P): New.
(enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT.
(union lang_tree_node): Add tree_deferred_noexcept.
(maybe_instantiate_noexcept): Declare.
* cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT.
* error.c (dump_exception_spec): Likewise.
* cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
* ptree.c (cxx_print_xnode): Likewise.
* tree.c (cp_tree_equal): Likewise.
* decl.c (cp_tree_node_structure): Likewise.
(duplicate_decls): Call maybe_instantiate_noexcept.
* except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT.
(nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check
DEFERRED_NOEXCEPT_SPEC_P.
* typeck2.c (merge_exception_specifiers): Likewise.
* decl2.c (mark_used): Call maybe_instantiate_noexcept.
* method.c (process_subob_fn, defaulted_late_check): Likewise.
* pt.c (tsubst_exception_specification): Add defer_ok parm.
Build DEFERRED_NOEXCEPT.
(maybe_instantiate_noexcept): New.
(tsubst, regenerate_decl_from_template, instantiate_decl): Adjust.
* search.c (check_final_overrider): Call maybe_instantiate_noexcept.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/noexcept11.C
trunk/gcc/testsuite/g++.dg/cpp0x/noexcept12.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-objcp-common.c
trunk/gcc/cp/cp-tree.def
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/cxx-pretty-print.c
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl2.c
trunk/gcc/cp/error.c
trunk/gcc/cp/except.c
trunk/gcc/cp/method.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/ptree.c
trunk/gcc/cp/search.c
trunk/gcc/cp/tree.c
trunk/gcc/cp/typeck2.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/sfinae11.C


[Bug c++/48468] [C++0x][SFINAE] noexcept operator does not handle function templates well

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

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org 2011-06-08 
21:39:50 UTC ---
Note that the fix I just checked in for 49107 delays substitution into
noexcept-specifications, so they are no longer usable for SFINAE.


[Bug c++/49332] New: [C++0x] noexcept ignored on function pointer

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

   Summary: [C++0x] noexcept ignored on function pointer
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Keywords: accepts-invalid, rejects-valid
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org
CC: ja...@gcc.gnu.org
Depends on: 12255


This testcase should give an error on the initialization and no error on the
static_assert.

// { dg-options -std=c++0x }

void f();
void (*p)() noexcept = f; // { dg-error  }

#define SA(X) static_assert((X),#X)

SA(noexcept(p()));

The underlying issue is PR 12255, but while this behavior was not observable in
C++98, it is observable in C++0x.


[Bug c++/49332] [C++0x] noexcept ignored on function pointer

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

--- Comment #1 from Jason Merrill jason at gcc dot gnu.org 2011-06-08 
21:47:04 UTC ---
Or rather in C++98 it was observable through diagnostics, but couldn't change
the behavior of a well-defined program.


[Bug c++/49332] [C++0x] noexcept ignored on function pointer

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

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.08 21:47:18
 Ever Confirmed|0   |1


[Bug c++/49259] template/incomplete6.C ICE in build_target_expr

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

Janis Johnson janis at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.08 21:54:15
 Ever Confirmed|0   |1

--- Comment #1 from Janis Johnson janis at gcc dot gnu.org 2011-06-08 
21:54:15 UTC ---
This was fixed by r174682, Jason's fix for c++/49134.


[Bug c++/49259] template/incomplete6.C ICE in build_target_expr

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

Janis Johnson janis at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #2 from Janis Johnson janis at gcc dot gnu.org 2011-06-08 
21:54:46 UTC ---
Closing as FIXED.


[Bug c++/44175] [C++0x] decltype sometimes cannot recurse

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

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #10 from Jason Merrill jason at gcc dot gnu.org 2011-06-08 
21:56:46 UTC ---
The deep recursion issue is in the actual recursive template substitution, not
the tinst_level stuff.


[Bug fortran/49324] iso_varying_string and reshape fail

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

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||wrong-code
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.06.08 22:12:30
 CC||pault at gcc dot gnu.org
 Ever Confirmed|0   |1
  Known to fail||4.3.4, 4.4.0, 4.5.1, 4.6.0,
   ||4.7.0
   Severity|normal  |major

--- Comment #3 from Tobias Burnus burnus at gcc dot gnu.org 2011-06-08 
22:12:30 UTC ---
First: The module http://www.fortran.com/iso_varying_string.f95 is invalid, cf.
PR 49331. (That shouldn't affect this PR.)

Secondly, there seems to be a serious bug in gfortran - and several other
compilers - in the handling of constructors of derived types with allocatable
components. With gfortran, I see three bugs for the following program:

- There is no reallocate on assignment
- The memory is multiple times freed for a normal constructor
- With reshape, the result is wrong (+ one has an invalid free)

Expected: With and without the explicit allocate of z and z2, the program
should print:
 11 11 22 22 22
 11 11 22 22 22

Actual result (w/ explicit allocate)
  11  11  22  22  22
   0   0   0   0  -202116348
  (Plus segfault)


implicit none
type t
  integer, allocatable :: A(:)
end type t

type(t) :: x, y
type(t), allocatable :: z(:), z2(:)

allocate (x%A(2))
allocate (y%A(3))
x%A = 11
y%A = 22

! BUG 1: Realloc LHS does not work,
! hence the following lines are required:
allocate (z(2))
allocate (z2(2))

z = [ x, y ]
print *, z(1)%a, z(2)%a  ! OK, if allocated

! BUG 2: Crash with invalid FREE at the the program

! BUG 3: The following produces garbage
z2 = reshape ([ x, y ], [ 2 ])
print *, z2(1)%a, z2(2)%a
end


[Bug gcov-profile/49333] New: [cppcheck][PATCH] found a resource leak in gcc/gcc/gcov-io.c

2011-06-08 Thread ettl.martin at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49333

   Summary: [cppcheck][PATCH] found a resource leak in
gcc/gcc/gcov-io.c
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: gcov-profile
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ettl.mar...@gmx.de


Created attachment 24467
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24467
proposed patch to fix the resource leak

During a check with the static code analysis tool cppcheck ( available on
sourcforge), i discovered to resource leaks. A resource leak in this case
means, it was forgotten to realease an open filepointer.

Please refer the attached patch.

Best regards from the cppcheck team.

Ettl Martin


[Bug ada/49334] New: [cppcheck] possible index out of bounds in gcc/ada/adaint.c

2011-06-08 Thread ettl.martin at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49334

   Summary: [cppcheck] possible index out of bounds in
gcc/ada/adaint.c
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ettl.mar...@gmx.de


During a check with the static code analysis tool cppcheck, the tool discoverd
a possible buffer access out of bounds issue. The tool printed the following
output:

[gcc/ada/adaint.c][error] Array index -1 is out of bounds at line 3139

After further investiating, i reduced the code to following snipped and indeed
cppcheck is right. Please take a look at the reduced testcase:

#define MAXPATH  256

static char new_canonical_dirspec [MAXPATH];

char * f (char *dirspec)
{
int len;

strcpy (new_canonical_dirspec, );

len = strlen (new_canonical_dirspec);

if (new_canonical_dirspec [len-1] != '/') // -- if len == 0 -- Acces out
of bounds
strncat (new_canonical_dirspec, /, MAXPATH);

new_canonical_dirspec [MAXPATH - 1] = (char) 0;

return new_canonical_dirspec;
}

Best regards from the cppcheck team

Ettl Martin


[Bug gcov-profile/49333] [cppcheck][PATCH] found a resource leak in gcc/gcc/gcov-io.c

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

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-06-08 
22:24:47 UTC ---
Actually both of wrong, at the return point fd is associated with gcov_var.file
(via fdopen) and fclose is called on the gcov_var.file.


[Bug target/49335] New: ARM: Invalid assembler generated while compiling C++ code from 'codeblocks'

2011-06-08 Thread michael.hope at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49335

   Summary: ARM: Invalid assembler generated while compiling C++
code from 'codeblocks'
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: michael.h...@linaro.org


Created attachment 24468
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24468
Reduced test case

The attached testcase is derived from codeblocks 10.05 and fails to build on
ARM due to generating invalid assembler.

To reproduce:

michaelh@ursa2:~/linaro/bugs$
~/linaro/toolchains/gcc-4.7~svn174795-armv7l-maverick-cbuild127-ursa3-cortexa9r1/bin/g++
-c -O2 -save-temps lp791327.cpp 

lp791327.s: Assembler messages:
lp791327.s:76: Error: r13 not allowed here -- `rsb r0,sp,r0,lsl#2'

The fault occurs in 4.6.0 and current trunk.  It does not occur in 4.5.3.

Originally reported at
https://bugs.launchpad.net/ubuntu/+source/codeblocks/+bug/791327


[Bug gcov-profile/49333] [cppcheck][PATCH] found a resource leak in gcc/gcc/gcov-io.c

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

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2011-06-08 
22:25:35 UTC ---
Oh the second hunk of the patch is very bad as it closes a file descriptor that
has an associated FILE to it.


[Bug target/49335] ARM: Invalid assembler generated while compiling C++ code from 'codeblocks'

2011-06-08 Thread michael.hope at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49335

--- Comment #1 from Michael Hope michael.hope at linaro dot org 2011-06-08 
22:33:32 UTC ---
Forgot the configuration:

Configured with: '../../gcc-4.7~/configure'
--prefix='/scratch/cbuild/slave/slaves/ursa3/gcc-4.7~svn174795/gcc/default/install'
--enable-languages=c,c++,objc,obj-c++,fortran,lto --with-mode=thumb
--with-arch=armv7-a --with-tune=cortex-a9 --with-float=softfp --with-fpu=neon
Thread model: posix
gcc version 4.7.0 20110608 (experimental) [trunk revision 174795] (GCC) 

michaelh@ursa2:~/linaro/bugs$ as -v
GNU assembler version 2.20.51 (arm-linux-gnueabi) using BFD version (GNU
Binutils for Ubuntu) 2.20.51-system.20100908

michaelh@ursa2:~/linaro/bugs$ uname -a
Linux ursa2 2.6.35.3-cbuild2+ #8 SMP Mon Apr 4 12:46:46 NZST 2011 armv7l
GNU/Linux

michaelh@ursa2:~/linaro/bugs$ lsb_release -a
No LSB modules are available.
Distributor ID:Ubuntu
Description:Ubuntu 10.10
Release:10.10
Codename:maverick

The fault also occurs at -O1 and -O3 but not at -O0.

The assembly in the region is:

.L33:
movsr1, #0
movsr2, #64
movr0, sp
movr9, sp
blmemset
cmpr4, #4
beq.L11
addr0, r8, r4, lsl #2
rsbr6, r8, #4
lslsr6, r6, #2
rsbr1, r4, #4
rsbr0, sp, r0, lsl #2
movr4, sp
movlr, #0

which matches the final lines of the function.  It looks like the code should
be using r9 instead of sp.


[Bug gcov-profile/49333] [cppcheck][PATCH] found a resource leak in gcc/gcc/gcov-io.c

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

--- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2011-06-08 
22:47:16 UTC ---
(In reply to comment #2)
 Oh the second hunk of the patch is very bad as it closes a file descriptor 
 that
 has an associated FILE to it.

I should say the FILE is still open and used after the function returns.   I
think you need to add another rule about fdopen causing the fd to become able
to close via fclose.


[Bug target/49305] SH Target: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403

2011-06-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49305

--- Comment #4 from Kazumoto Kojima kkojima at gcc dot gnu.org 2011-06-08 
23:13:30 UTC ---
Author: kkojima
Date: Wed Jun  8 23:13:27 2011
New Revision: 174824

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=174824
Log:
PR target/49305
* config/sh/predicates.md (general_movsrc_operand): Check
mode for memory with indexed address for QI and HImode.
(general_movdst_operand): Likewise.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sh/predicates.md


[Bug target/49305] SH Target: internal compiler error: in reload_cse_simplify_operands, at postreload.c:403

2011-06-08 Thread kkojima at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49305

Kazumoto Kojima kkojima at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #5 from Kazumoto Kojima kkojima at gcc dot gnu.org 2011-06-08 
23:17:08 UTC ---
Fixed.


[Bug libfortran/49336] New: ATAN2 values differ from those specified in documentation

2011-06-08 Thread ahn567 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49336

   Summary: ATAN2  values differ from those specified in
documentation
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ahn...@gmail.com


The documentation for ATAN2(Y,X) says:  

If Y is zero, then the return value is zero if X is positive and pi if X is
negative.

However, the value returned by  ATAN2(-0d0, -1d0)  is  -pi  (not +pi).
This is for gfortran 4.4.5.

So either the documentation needs fixing (and signed zero explained), 
or the function ATAN2 should be redefined to return values in (-pi,pi]. 

...I'm not sure which is more standard for Fortran.


[Bug ada/49337] New: Improve Gnatmake to work without static libraries.

2011-06-08 Thread bj...@xn--rombobjrn-67a.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49337

   Summary: Improve Gnatmake to work without static libraries.
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bj...@xn--rombobjrn-67a.se


Created attachment 24469
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24469
one possible way of making Gnatmake work with either shared or static libraries

The maintainers of GCC in Fedora have split out libgnat.a and libgnarl.a to a
separate subpackage which is by default not installed together with the Gnat
tools. (Fedora has a policy to use only shared libraries as much as possible.)
This causes Gnatmake to crash when it tries to find the directory that contains
libgnat by looking for libgnat.a and the file isn't there.

Could we have Gnatmake improved to also look for libgnat.so if it doesn't find
libgnat.a, so that it can work with only shared libraries installed?


[Bug gcov-profile/49333] [cppcheck][PATCH] found a resource leak in gcc/gcc/gcov-io.c

2011-06-08 Thread ettl.martin at gmx dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49333

--- Comment #4 from Martin Ettl ettl.martin at gmx dot de 2011-06-09 00:41:41 
UTC ---
Thanks, i already filed a bug at cppchecks bugtracker about this issue:
http://sourceforge.net/apps/trac/cppcheck/ticket/2830
Many thanks for your help and best regards

Martin


2011/6/9 pinskia at gcc dot gnu.org gcc-bugzi...@gcc.gnu.org

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49333

 --- Comment #3 from Andrew Pinski pinskia at gcc dot gnu.org 2011-06-08
 22:47:16 UTC ---
 (In reply to comment #2)
  Oh the second hunk of the patch is very bad as it closes a file
 descriptor that
  has an associated FILE to it.

 I should say the FILE is still open and used after the function returns.
 I
 think you need to add another rule about fdopen causing the fd to become
 able
 to close via fclose.

 --
 Configure bugmail: http://gcc.gnu.org/bugzilla/userprefs.cgi?tab=email
 --- You are receiving this mail because: ---
 You reported the bug.



[Bug rtl-optimization/49154] [4.7 Regression]: build fails on cris-elf in libgcc: ICE in setup_pressure_classes, at ira.c:902

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

--- Comment #5 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-06-09 
01:31:26 UTC ---
Created attachment 24470
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24470
A patch to the CRIS port to go with the documentation update.

Unfortunately when this patch by itself is applied, we run into a SEGV in IRA.
Will post that patch momentarily.


[Bug target/49030] ICE in get_arm_condition_code, at config/arm/arm.c:17180

2011-06-08 Thread michael.hope at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49030

Michael Hope michael.hope at linaro dot org changed:

   What|Removed |Added

 CC||michael.hope at linaro dot
   ||org

--- Comment #5 from Michael Hope michael.hope at linaro dot org 2011-06-09 
01:34:47 UTC ---
The same assert is seen in
https://bugs.launchpad.net/ubuntu/+source/gcc-4.5/+bug/689887 in Thumb-2 mode
on trunk r174795.

Chung-Lin posted a patch at
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00790.html but there are bootstrap
issues.

Adding -fno-if-conversion works around the problem.


[Bug c/48062] `shadowed declaration is here' should be a note

2011-06-08 Thread momchil at xaxo dot eu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48062

momchil at xaxo dot eu changed:

   What|Removed |Added

 CC||momchil at xaxo dot eu

--- Comment #2 from momchil at xaxo dot eu 2011-06-09 01:46:43 UTC ---
Hi, there is an ambiguity here, consider the following examples:

$ cat  1.c
int
main(void)
{
int i;

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wshadow
{ int i; }
#pragma GCC diagnostic pop
}

$ gcc46 -Wshadow 1.c
1.c: In function 'main':
1.c:4:6: warning: shadowed declaration is here [-Wshadow]

Here I would suppose to see no warning at all, because I have turned it off for
the case that shadows. But:

$ cat  2.c
int
main(void)
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wshadow
int i;
#pragma GCC diagnostic pop

{int i;}
}
$ gcc46 -Wshadow 2.c
2.c: In function 'main':
2.c:9:7: warning: declaration of 'i' shadows a previous local [-Wshadow]

And it is something that I whould also not expect. And now:

$ cat  3.c
int
main(void)
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wshadow
int i;
#pragma GCC diagnostic pop

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored -Wshadow
{ int i; }
#pragma GCC diagnostic pop
}
$ gcc46 -Wshadow 3.c

Produces no warning. So for me it is a bit confusing, since the warning setting
refers to pieces of code and not to variables.


[Bug rtl-optimization/49154] [4.7 Regression]: build fails on cris-elf in libgcc: ICE in setup_pressure_classes, at ira.c:902

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

--- Comment #6 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-06-09 
01:54:41 UTC ---
Created attachment 24471
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24471
Repeat mentioned SEGV at patched r174780 with cc1 -fpreprocessed  -O2
libgcc2.i -march=v10


[Bug rtl-optimization/49154] [4.7 Regression]: build fails on cris-elf in libgcc: ICE in setup_pressure_classes, at ira.c:902

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

--- Comment #7 from Hans-Peter Nilsson hp at gcc dot gnu.org 2011-06-09 
02:34:02 UTC ---
(In reply to comment #5)
 Will post that patch momentarily.
Done: http://gcc.gnu.org/ml/gcc-patches/2011-06/msg00697.html


  1   2   >