[Bug c/61399] LDBL_MAX is incorrect with IBM long double format / overflow issues near large values

2014-06-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61399

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 ---
I think lowering LDBL_MAX_EXP would be far worse than this.
The double-double format is unusable for any real numerics in so many ways that
this is just one small part of that, the variable precision from 106 to
thousands of precision bits depending on exact value is far worse.


[Bug c/61399] LDBL_MAX is incorrect with IBM long double format / overflow issues near large values

2014-06-03 Thread vincent-gcc at vinc17 dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61399

--- Comment #3 from Vincent Lefèvre vincent-gcc at vinc17 dot net ---
The variable precision is unavoidable with this format (this is even a feature,
despite the drawbacks). But the fact that the variable precision is problematic
by itself isn't a reason not to try to solve other issues.

[Bug c++/61401] New: Wrong treatment of empty template-argument packs during deduction

2014-06-03 Thread alexey.kudinkin at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61401

Bug ID: 61401
   Summary: Wrong treatment of empty template-argument packs
during deduction
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: alexey.kudinkin at gmail dot com

templatetypename, typename
struct X;

templatetypename T
struct XT, T(T)
{
  typedef int type;
};

templatetypename T, typename ...Args 
struct Y : XArgs..., T, T(T)
{
};

Yint::type x;

Compiling this snippet g++ (4.9.0) complains about wrong amount of template
arguments while shouldn't.


[Bug c++/61361] gcc segfaults on SLES12 beta4 P8

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61361

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed.


[Bug tree-optimization/61383] [4.8/4.9/4.10 Regression] wrong code at -O2 and -O3 on x86_64-linux-gnu

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61383

--- Comment #7 from Richard Biener rguenth at gcc dot gnu.org ---
Author: rguenth
Date: Tue Jun  3 08:48:28 2014
New Revision: 211163

URL: http://gcc.gnu.org/viewcvs?rev=211163root=gccview=rev
Log:
2014-06-03  Richard Biener  rguent...@suse.de

PR tree-optimization/61383
* tree-ssa-ifcombine.c (bb_no_side_effects_p): Make sure
stmts can't trap.

* gcc.dg/torture/pr61383-1.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr61383-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ifcombine.c


[Bug rtl-optimization/60901] [4.8/4.9 Regression] ICE: SIGSEGV in add_to_deps_list with -fsel-sched-pipelining-outer-loops

2014-06-03 Thread abel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60901

--- Comment #9 from Andrey Belevantsev abel at gcc dot gnu.org ---
Author: abel
Date: Tue Jun  3 09:20:36 2014
New Revision: 211164

URL: http://gcc.gnu.org/viewcvs?rev=211164root=gccview=rev
Log:
Backport from mainline

2014-05-14  Andrey Belevantsev  a...@ispras.ru
PR rtl-optimization/60901

* config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
bb predecessor belongs to the same scheduling region.  Adjust comment.

* gcc.target/i386/pr60901.c: New test.


Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.target/i386/pr60901.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/i386/i386.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug c++/61401] Wrong treatment of empty template-argument packs during deduction

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61401

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org ---
The template Y can only be instantiated with an empty parameter pack, which
makes it invalid.  [temp.res] p8 says:

If every valid specialization of a variadic template requires an empty
template parameter pack, the template is ill-formed, no diagnostic required


[Bug rtl-optimization/60866] [4.7/4.8/4.9 Regression] ICE: in get_seqno_for_a_jump, at sel-sched-ir.c:4068 with -fselective-scheduling -fno-if-conversion

2014-06-03 Thread abel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60866

--- Comment #7 from Andrey Belevantsev abel at gcc dot gnu.org ---
Author: abel
Date: Tue Jun  3 09:25:39 2014
New Revision: 211165

URL: http://gcc.gnu.org/viewcvs?rev=211165root=gccview=rev
Log:
Backport from mainline
2014-05-14  Andrey Belevantsev  a...@ispras.ru

PR rtl-optimization/60866
* sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
Default it to -1.  Pass it down to init_simplejump_data.
(init_simplejump_data): New parameter old_seqno.  Pass it down
to get_seqno_for_a_jump.
(get_seqno_for_a_jump): New parameter old_seqno.  Use it for
initializing new jump seqno as a last resort.  Add comment.
(sel_redirect_edge_and_branch): Save old seqno of the conditional
jump and pass it down to sel_init_new_insn.
(sel_redirect_edge_and_branch_force): Likewise.

* gcc.dg/pr60866.c: New test.


Added:
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/pr60866.c
Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/sel-sched-ir.c
branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


[Bug tree-optimization/61328] valgrind finds problem in find_bswap_or_nop_1

2014-06-03 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61328

--- Comment #5 from thopre01 at gcc dot gnu.org ---
Author: thopre01
Date: Tue Jun  3 09:29:06 2014
New Revision: 211166

URL: http://gcc.gnu.org/viewcvs?rev=211166root=gccview=rev
Log:
2014-06-03  Thomas Preud'homme  thomas.preudho...@arm.com

PR tree-optimization/61328
* tree-ssa-math-opts.c (init_symbolic_number): Extract symbolic number
initialization from find_bswap_or_nop_1.
(find_bswap_or_nop_1): Test return value of find_bswap_or_nop_1 stored
in source_expr2 before using the size value the function sets. Also
make use of init_symbolic_number () in both the old place and
find_bswap_or_nop_load () to avoid reading uninitialized memory when
doing recursion in the GIMPLE_BINARY_RHS case.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-math-opts.c


[Bug c++/51253] [C++11][DR 1030] Evaluation order (sequenced-before relation) among initializer-clauses in braced-init-list

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51253

--- Comment #13 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Akim Demaille from comment #10)
   auto t = std::make_tuple(incr(), incr());

That's not an initializer-list, it's a function call, so the order of
evaluation is not specified and that example is not relevant AFAICT.


[Bug c++/57543] decltype needs explicit 'this' pointer in member function declaration of template class with trailing return type

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57543

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 CC||yyc1992 at gmail dot com

--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org ---
*** Bug 61400 has been marked as a duplicate of this bug. ***


[Bug c++/61400] suffix return type doesn't work for template member functions with explict specialization

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61400

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Yichao Yu from comment #1)
 2. The function used in decltype have to be explicitly specialized using at
 least one of the template parameter from the other function. (i.e. there
 won't be any error if I replace `decltype(ai())` with `decltype(a0())`

That has an explicit template argument list, that's not the same as explicitly
specialized

This was fixed a few days ago anyway.

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


[Bug rtl-optimization/60901] [4.8/4.9 Regression] ICE: SIGSEGV in add_to_deps_list with -fsel-sched-pipelining-outer-loops

2014-06-03 Thread abel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60901

--- Comment #10 from Andrey Belevantsev abel at gcc dot gnu.org ---
Author: abel
Date: Tue Jun  3 10:06:39 2014
New Revision: 211168

URL: http://gcc.gnu.org/viewcvs?rev=211168root=gccview=rev
Log:
Backport from mainline

2014-05-14  Andrey Belevantsev  a...@ispras.ru
PR rtl-optimization/60901

* config/i386/i386.c (ix86_dependencies_evaluation_hook): Check that
bb predecessor belongs to the same scheduling region.  Adjust comment.

* gcc.target/i386/pr60901.c: New test.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr60901.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/config/i386/i386.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug rtl-optimization/60901] [4.8/4.9 Regression] ICE: SIGSEGV in add_to_deps_list with -fsel-sched-pipelining-outer-loops

2014-06-03 Thread abel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60901

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution|--- |FIXED

--- Comment #11 from Andrey Belevantsev abel at gcc dot gnu.org ---
Fixed on branches.


[Bug ipa/61160] [4.9/4.10 Regression] wrong code with -O3 (or ICE: verify_cgraph_node failed: edge points to wrong declaration)

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61160

--- Comment #5 from Martin Jambor jamborm at gcc dot gnu.org ---
Author: jamborm
Date: Tue Jun  3 10:09:20 2014
New Revision: 211170

URL: http://gcc.gnu.org/viewcvs?rev=211170root=gccview=rev
Log:
2014-06-03  Martin Jambor  mjam...@suse.cz

PR ipa/61160
* ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
thunks.

testsuite/
* g++.dg/ipa/pr61160-1.C: New test.


Added:
trunk/gcc/testsuite/g++.dg/ipa/pr61160-1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-cp.c
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/60866] [4.7/4.8/4.9 Regression] ICE: in get_seqno_for_a_jump, at sel-sched-ir.c:4068 with -fselective-scheduling -fno-if-conversion

2014-06-03 Thread abel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60866

--- Comment #8 from Andrey Belevantsev abel at gcc dot gnu.org ---
Author: abel
Date: Tue Jun  3 10:08:58 2014
New Revision: 211169

URL: http://gcc.gnu.org/viewcvs?rev=211169root=gccview=rev
Log:
Backport from mainline
2014-05-14  Andrey Belevantsev  a...@ispras.ru

PR rtl-optimization/60866
* sel-sched-ir (sel_init_new_insn): New parameter old_seqno.
Default it to -1.  Pass it down to init_simplejump_data.
(init_simplejump_data): New parameter old_seqno.  Pass it down
to get_seqno_for_a_jump.
(get_seqno_for_a_jump): New parameter old_seqno.  Use it for
initializing new jump seqno as a last resort.  Add comment.
(sel_redirect_edge_and_branch): Save old seqno of the conditional
jump and pass it down to sel_init_new_insn.
(sel_redirect_edge_and_branch_force): Likewise.

* gcc.dg/pr60866.c: New test.

Added:
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/pr60866.c
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/sel-sched-ir.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug rtl-optimization/60866] [4.7/4.8/4.9 Regression] ICE: in get_seqno_for_a_jump, at sel-sched-ir.c:4068 with -fselective-scheduling -fno-if-conversion

2014-06-03 Thread abel at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60866

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Andrey Belevantsev abel at gcc dot gnu.org ---
Also fixed on branches.


[Bug ipa/61160] [4.9/4.10 Regression] wrong code with -O3 (or ICE: verify_cgraph_node failed: edge points to wrong declaration)

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61160

--- Comment #6 from Martin Jambor jamborm at gcc dot gnu.org ---
Author: jamborm
Date: Tue Jun  3 10:13:15 2014
New Revision: 211171

URL: http://gcc.gnu.org/viewcvs?rev=211171root=gccview=rev
Log:
2014-06-03  Martin Jambor  mjam...@suse.cz

PR ipa/61160
* ipa-cp.c (cgraph_edge_brings_value_p): Handle edges leading to
thunks.

testsuite/
* g++.dg/ipa/pr61160-1.C: New test.


Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/ipa/pr61160-1.C
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/ipa-cp.c
branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


[Bug ipa/61160] [4.9/4.10 Regression] wrong code with -O3 (or ICE: verify_cgraph_node failed: edge points to wrong declaration)

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61160

--- Comment #7 from Martin Jambor jamborm at gcc dot gnu.org ---
The first patch has been approved and committed, the second one
(https://gcc.gnu.org/ml/gcc-patches/2014-05/msg02660.html) is still
pending approval.


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread thomas.preudhomme at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #10 from Thomas Preud'homme thomas.preudhomme at arm dot com ---
So I am testing the patch right now and should be able to send it tomorrow.
However, the code already shall already mark the load with the actual alignment
the access is being done with. Therefore it seems to me that something in the
backend fails to split the unaligned load into several aligned load. Could you
break after the line align = get_object_alignment (src); in
tree-ssa-math-opts.c when compiling gcc/java/jcf-parse.c in stage 1 (I suppose
it breaks in stage 2)?

What does print align gives? What about print load_type-type_common.align ?

Best regards.


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #11 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 So I am testing the patch right now and should be able to send it tomorrow.
 However, the code already shall already mark the load with the actual
 alignment the access is being done with. Therefore it seems to me that
 something in the backend fails to split the unaligned load into several
 aligned load.

But what would be the point of this round trip exactly?


[Bug c++/61402] New: [C++1y] Init-capture with side effect not working for some types

2014-06-03 Thread thibaut.lutz at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61402

Bug ID: 61402
   Summary: [C++1y] Init-capture with side effect not working for
some types
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thibaut.lutz at googlemail dot com

Lambda functions with an init-capture for which the initializer has a side
effect is not always taken into account.

The example below defines a lambda with an init-capture, which increments a
variable in the initalizer, and invoke the lambda immediately with the same
variable as a parameter. The body of the lambda prints the value of the
captured value and its parameters, which should be identical.

Expected result: The captured value and the parameter should have the same
value, since the instantiation of the lambda should be evaluated before its
invocation.

Actual results: for some types (at least bool and char), the increment inside
the init-capture is partially evaluated: the captured value is correct but the
side effect is gone. Other types are working as expected.

Tested with: gcc 4.9.0 and 4.8.1

Code:
--888888--
#include iostream

templatetypename T
void foo(T t) {
  using namespace std;
  // print the original argument
  cout  endl  par t =   t  endl;

  { // lambda function declaration and invocation 
// capture argument by-copy after pre-increment 
[ i = ++t ]
// take one parameter
(T v)
{
  // print captured value and argument
  cout  cap i = ++t =   i  endl
arg v =   v  endl;
}
// invocation with the new value of the argument
(t);
  }
}

int main(){
  foo(3.14f); // works OK
  foo(0); // works OK
  foo('a');   // fails!
  foo(false); // fails!
}
--888888--

Program output:
par t = 3.14
cap i = ++t = 4.14
arg v = 4.14

par t = 0
cap i = ++t = 1
arg v = 1

par t = a
cap i = ++t = b
arg v = a

par t = 0
cap i = ++t = 1
arg v = 0

For the last two types (char and bool), we observe v == t instead of v == i.


[Bug c++/61402] [C++1y] Init-capture with side effect not working for some types

2014-06-03 Thread thibaut.lutz at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61402

--- Comment #1 from Thibaut LUTZ thibaut.lutz at googlemail dot com ---
I forgot to add that separating declaration and invocation seems to solve the
problem: 

--888888--
#include iostream

templatetypename T
void foo(T t) {
  using namespace std;
  cout  endl  par t =   t  endl;
  auto test = [ i = ++t ](T v) {
  cout  cap i = ++t =   i  endl
arg v =   v  endl;
  };
  test(t);
}

int main(){
  foo(3.14f); // works OK
  foo(0); // works OK
  foo('a');   // works OK
  foo(false); // works OK
}
--888888--


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #12 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Eric Botcazou from comment #11)
  So I am testing the patch right now and should be able to send it tomorrow.
  However, the code already shall already mark the load with the actual
  alignment the access is being done with. Therefore it seems to me that
  something in the backend fails to split the unaligned load into several
  aligned load.
 
 But what would be the point of this round trip exactly?

I'd say

Index: tree-ssa-math-opts.c
===
--- tree-ssa-math-opts.c(revision 211170)
+++ tree-ssa-math-opts.c(working copy)
@@ -2149,7 +2149,8 @@ bswap_replace (gimple stmt, gimple_stmt_
   unsigned align;

   align = get_object_alignment (src);
-  if (bswap  SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
+  if (align  GET_MODE_ALIGNMENT (TYPE_MODE (load_type))
+  SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
return false;

   /*  Compute address to load from and cast according to the size

is obvious (and pre-approved).


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #13 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Thomas Preud'homme from comment #10)
 So I am testing the patch right now and should be able to send it tomorrow.
 However, the code already shall already mark the load with the actual
 alignment the access is being done with. Therefore it seems to me that
 something in the backend fails to split the unaligned load into several
 aligned load. Could you break after the line align = get_object_alignment
 (src); in tree-ssa-math-opts.c when compiling gcc/java/jcf-parse.c in stage
 1 (I suppose it breaks in stage 2)?
 
 What does print align gives? What about print load_type-type_common.align ?
 
 Best regards.

The question is more like what happens in expand_assignment, that is, why
don't we go the extract_bit_field codepath.


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #14 from Richard Biener rguenth at gcc dot gnu.org ---
(In reply to Richard Biener from comment #12)
 (In reply to Eric Botcazou from comment #11)
   So I am testing the patch right now and should be able to send it 
   tomorrow.
   However, the code already shall already mark the load with the actual
   alignment the access is being done with. Therefore it seems to me that
   something in the backend fails to split the unaligned load into several
   aligned load.
  
  But what would be the point of this round trip exactly?
 
 I'd say
 
 Index: tree-ssa-math-opts.c
 ===
 --- tree-ssa-math-opts.c(revision 211170)
 +++ tree-ssa-math-opts.c(working copy)
 @@ -2149,7 +2149,8 @@ bswap_replace (gimple stmt, gimple_stmt_
unsigned align;
  
align = get_object_alignment (src);
 -  if (bswap  SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
 +  if (align  GET_MODE_ALIGNMENT (TYPE_MODE (load_type))
 +  SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
 return false;
  
/*  Compute address to load from and cast according to the size
 
 is obvious (and pre-approved).

obvious as a workaround, that is.


[Bug java/61398] [4.10 Regression] Object.java:313:0: ICE: Bus error

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61398

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.10.0

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
Sounds like a dup of PR61320?


[Bug middle-end/61394] [4.10 regression] ICE in symtab_get_node

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61394

--- Comment #1 from Richard Biener rguenth at gcc dot gnu.org ---
I think I've seen a dup.  The issue is we fail to set DECL_HARD_REGISTER on
this
bogus decl and/or fail to set it up as proper variable.  That leaves the symtab
in inconsistent shape.


[Bug other/61391] [4.10 Regression] ICE in execute_one_pass at -O3 and above

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61391

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-06-03
 CC||ysrumyan at gmail dot com
   Target Milestone|--- |4.10.0
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener rguenth at gcc dot gnu.org ---
Confirmed.

Backtrace:

#0  0x00c6bdcb in bb_predicate (bb=basic_block 0x76d49d68 (14))
at /space/rguenther/src/svn/trunk/gcc/tree-if-conv.c:149
#1  0x00c6c127 in is_predicated (bb=basic_block 0x76d49d68 (14))
at /space/rguenther/src/svn/trunk/gcc/tree-if-conv.c:275
#2  0x00c6f101 in is_cond_scalar_reduction (
phi=gimple_phi 0x76d82300, reduc=0x7fffd888, op0=0x7fffd898, 
op1=0x7fffd890)
at /space/rguenther/src/svn/trunk/gcc/tree-if-conv.c:1442
#3  0x00c6f63c in predicate_scalar_phi (
phi=gimple_phi 0x76d82300, cond=ne_expr 0x76d8b0f0, 
true_bb=basic_block 0x76d7e958 (27), gsi=0x7fffd970)
at /space/rguenther/src/svn/trunk/gcc/tree-if-conv.c:1583
#4  0x00c6f8b4 in predicate_all_scalar_phis (loop=0x76c309c0)
at /space/rguenther/src/svn/trunk/gcc/tree-if-conv.c:1637


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #15 from Richard Biener rguenth at gcc dot gnu.org ---
Btw, unpatched and with a cross to sparc-linux (didn't figure out a working
solaris triplet that builds) and

unsigned int foo (unsigned short *x)
{
  return x[0]  16 | x[1];
}

I see

32 bit load in host endianness found at: _8 = (int) load_dst_11;
foo (short unsigned int * x)
{
  short unsigned int _3;
  int _4;
  int _5;
  short unsigned int _6;
  int _7;
  int _8;
  unsigned int _9;
  short unsigned int * load_src_10;
  unsigned int load_dst_11;

  bb 2:
  _3 = *x_2(D);
  _4 = (int) _3;
  _5 = _4  16;
  _6 = MEM[(short unsigned int *)x_2(D) + 2B];
  _7 = (int) _6;
  load_src_10 = x_2(D);
  load_dst_11 = MEM[(short unsigned int *)load_src_10];
  _8 = (int) load_dst_11;
  _9 = (unsigned int) _8;
  return _9;

expanding from

  bb 2:
  load_dst_11 = MEM[(short unsigned int *)x_2(D)];
  return load_dst_11;

gets you

foo:
lduh[%o0], %g1
lduh[%o0+2], %o0
sll %g1, 16, %g1
jmp %o7+8
 or %o0, %g1, %o0

which looks perfect to me.

So it must be sth else that breaks the libjava case?

Can someone please provide preprocessed source for jcf-parse.c and
point out the error in the assembly at least?


[Bug c++/61134] [4.7/4.8/4.9/4.10 Regression][C++11] bogus no matching function for call...

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61134

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun  3 11:55:28 2014
New Revision: 211175

URL: http://gcc.gnu.org/viewcvs?rev=211175root=gccview=rev
Log:
PR c++/61134
* pt.c (pack_deducible_p): Handle canonicalization.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/cpp0x/variadic158.C
Modified:
branches/gcc-4_9-branch/gcc/cp/ChangeLog
branches/gcc-4_9-branch/gcc/cp/pt.c


[Bug c++/61020] [4.9/4.10 Regression] typeid(typeid(X)) produces 'ud2'

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61020

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun  3 11:55:36 2014
New Revision: 211176

URL: http://gcc.gnu.org/viewcvs?rev=211176root=gccview=rev
Log:
PR c++/61020
* varpool.c (ctor_for_folding): Handle uninitialized vtables.

Added:
branches/gcc-4_9-branch/gcc/testsuite/g++.dg/opt/typeinfo1.C
Modified:
branches/gcc-4_9-branch/gcc/ChangeLog
branches/gcc-4_9-branch/gcc/varpool.c


[Bug c++/61020] [4.9/4.10 Regression] typeid(typeid(X)) produces 'ud2'

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61020

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun  3 11:56:58 2014
New Revision: 211178

URL: http://gcc.gnu.org/viewcvs?rev=211178root=gccview=rev
Log:
PR c++/61020
* varpool.c (ctor_for_folding): Handle uninitialized vtables.

Added:
trunk/gcc/testsuite/g++.dg/opt/typeinfo1.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/varpool.c


[Bug lto/61334] [4.10 Regression] lto-cgraph.c:976:68: error: 'strnlen' was not declared in this scope

2014-06-03 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61334

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

 CC||iains at gcc dot gnu.org

--- Comment #5 from Iain Sandoe iains at gcc dot gnu.org ---
works for me on ppc-darwin9


[Bug c++/59498] [DR 1430][4.9/4.10 Regression] Pack expansion error in template alias

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59498

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
And the current development version of clang also rejects this testcase:

wa.C:5:34: error: pack expansion used as argument for non-pack parameter of
  alias template
using variadic_alias = aliasT...;
 ^~~~
wa.C:1:24: note: template parameter is declared here
template typename T, typename ...
   ^


[Bug c++/61046] [4.8/4.9/4.10 Regression] ICE in lookup_field_1, at cp/search.c:384

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61046

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.8.4   |4.10.0
  Known to fail|4.10.0  |

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Fixed on trunk.


[Bug c++/61134] [4.7/4.8 Regression][C++11] bogus no matching function for call...

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61134

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[4.7/4.8/4.9/4.10   |[4.7/4.8 Regression][C++11]
   |Regression][C++11] bogus|bogus no matching function
   |no matching function for   |for call...
   |call...|

--- Comment #3 from Jason Merrill jason at gcc dot gnu.org ---
Fixed for 4.9.1 and trunk so far.


[Bug c++/61020] [4.9/4.10 Regression] typeid(typeid(X)) produces 'ud2'

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61020

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Fixed.


[Bug middle-end/61294] [4.9 Regression] erroneous memset used with constant zero length parameter warning

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61294

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW
 CC||jason at gcc dot gnu.org
  Component|c++ |middle-end

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
It's clearly a false positive; the warning is intended to catch calls where the
user wrote a 0 directly in the argument list for memset (which suggests
accidentally transposed arguments), not cases where some execution path might
result in a 0 argument (which works fine).  The only question is what there is
to fix either in GCC or GLIBC to avoid this false positive.

A simple way to work around this is to guard the memset with if (npoints  0).

The false positive seems to come up fairly often:

https://sourceware.org/ml/binutils/2012-02/msg00073.html
https://bugzilla.redhat.com/show_bug.cgi?id=452219
https://www.nsnam.org/bugzilla/show_bug.cgi?id=1165

Changing component to middle-end.

Reduced C testcase:

typedef __SIZE_TYPE__ size_t;
extern void *malloc (size_t __size) __attribute__ ((__malloc__)) __attribute__
((__warn_unused_result__));
extern void *memset (void *__s, int __c, size_t __n) __attribute__
((__nonnull__ (1)));
extern void __warn_memset_zero_len (void) __attribute__((__warning__ (memset
used with constant zero length parameter; this could be due to transposed
parameters)));
extern __inline __attribute__((__always_inline__))
__attribute__((__artificial__))
void *
  memset (void *__dest, int __ch, size_t __len)
{
  if (__builtin_constant_p (__len)  __len == 0
   (!__builtin_constant_p (__ch) || __ch != 0))
{
  __warn_memset_zero_len ();
  return __dest;
}
  return __builtin___memset_chk (__dest, __ch, __len,
 __builtin_object_size (__dest, 0));
}

int i;
inline int f()
{
  if (i)
return i;
  else
return 0;
}

void g(unsigned char val)
{
  int len = f();
  void *p = malloc (len);
  memset (p, val, len);
}


[Bug tree-optimization/61403] New: An opportunity for x86 gcc vectorizer (~40% gain)

2014-06-03 Thread evstupac at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61403

Bug ID: 61403
   Summary: An opportunity for x86 gcc vectorizer (~40% gain)
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: evstupac at gmail dot com

Test normalizing 3D coordinates failed to vectorize

#include math.h 

struct XYZ 
{ 
  float x; 
  float y; 
  float z; 
}; 

void 
norm (struct XYZ *in, struct XYZ *out, int size) 
{ 
  int i; 
  for (i = 0; i  size; ++i) 
{ 
  float n = sqrt(in[i].x * in[i].x + in[i].y * in[i].y + in[i].z *
in[i].z); 
  out[i].x = in[i].x / n;
  out[i].y = in[i].y / n;
  out[i].z = in[i].z / n;
} 
} 

gcc norm.c -Ofast -S -mssse3 -fdump-tree-vect-details

norm.c:14:3: note: type of def: 3. 
norm.c:14:3: note: no array mode for V4SF[3] 
norm.c:14:3: note: the size of the group of accesses is not a power of 2
norm.c:14:3: note: not vectorized: relevant stmt not supported: _19-x = _20;

Vectorization should give ~40% gain on x86


[Bug c++/60848] [4.7/4.8/4.9/4.10 Regression] Crash while experimenting with c++-0x initializer lists

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60848

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

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


[Bug c++/60894] [4.7/4.8/4.9/4.10 Regression] Use of redundant struct keyword in virtual function prototype combined with using statement causes compilation error

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60894

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Any news?


[Bug middle-end/60092] posix_memalign not recognized to derive alias and alignment info

2014-06-03 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60092

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.9.1   |4.9.0

--- Comment #28 from Richard Biener rguenth at gcc dot gnu.org ---
Fixed for 4.9.0.


[Bug libfortran/61173] [4.9/4.10 Regression] Erroneous end of file with internal read

2014-06-03 Thread krefson at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61173

--- Comment #7 from Keith Refson krefson at gmail dot com ---
Is it possible to say which version of gcc will contain the fix?  It is not in
the gfortran.com snapshot dated 20140528. Will this go in to the 4.9.1
release?


[Bug c++/60848] [4.7/4.8/4.9/4.10 Regression] Crash while experimenting with c++-0x initializer lists

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60848

--- Comment #4 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun  3 14:11:10 2014
New Revision: 211179

URL: http://gcc.gnu.org/viewcvs?rev=211179root=gccview=rev
Log:
PR c++/60848
* call.c (is_std_init_list): Check CLASSTYPE_TEMPLATE_INFO.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/initlist85.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c


[Bug rtl-optimization/46235] inefficient bittest code generation

2014-06-03 Thread chris.a.ferguson at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46235

--- Comment #5 from chris.a.ferguson at gmail dot com ---
This optimization opportunity is still being missed as of GCC 4.9.

Test cases:

bool IsBitSet1(unsigned char byte, int index)
{
return (byte  (1index)) != 0;
}

bool IsBitSet2(unsigned char byte, int index)
{
return (byte  index)  1;
}

From GCC 4.9:

IsBitSet1(unsigned char, int):
movecx, esi
moveax, 1
movzx  edi, dil
saleax, cl
test   eax, edi
setne  al
ret

IsBitSet2(unsigned char, int):
movzx  eax, dil
movecx, esi
sareax, cl
andeax, 1
ret


From Clang 3.3:

IsBitSet1(unsigned char, int):
btl%esi, %edi
setb   %al
ret

IsBitSet2(unsigned char, int):
btl%esi, %edi
setb   %al
ret


[Bug c++/60848] [4.7/4.8/4.9/4.10 Regression] Crash while experimenting with c++-0x initializer lists

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60848

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|4.7.4   |4.10.0

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org ---
Fixed on trunk.


[Bug c++/61381] constexpr non captured by template lambda

2014-06-03 Thread daniel.kruegler at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61381

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

   What|Removed |Added

 CC||daniel.kruegler@googlemail.
   ||com

--- Comment #1 from Daniel Krügler daniel.kruegler at googlemail dot com ---
Recent gcc 4.10 trunk (20140602) accepts the code

[Bug libstdc++/61227] [C++11] Regex [\w] does not work

2014-06-03 Thread fatony at fatony dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61227

--- Comment #6 from FaTony fatony at fatony dot net ---
Hi. I'm using Debain Testing and today according to changelog:
* Update to SVN 20140527 (r210956) from the gcc-4_9-branch.

The bug still persists.


[Bug c++/61381] constexpr non captured by template lambda

2014-06-03 Thread vincenzo.innocente at cern dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61381

--- Comment #2 from vincenzo Innocente vincenzo.innocente at cern dot ch ---
I am still at trunk revision 210507
will update and test again


[Bug c++/60992] [4.9/4.10 Regression] ICE in tsubst_copy, at cp/pt.c:12637

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60992

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org ---
Author: jason
Date: Tue Jun  3 15:39:20 2014
New Revision: 211188

URL: http://gcc.gnu.org/viewcvs?rev=211188root=gccview=rev
Log:
PR c++/60992
* pt.c (tsubst_copy) [VAR_DECL]: Try lookup first.  Add a new
variable to local_specializations.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c


[Bug ipa/61393] [trans-mem] O3 optimization level constant propagation problem

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61393

--- Comment #1 from Martin Jambor jamborm at gcc dot gnu.org ---
Alexander, as a temporary workaround, you can use -fno-ipa-cp.

The problem (also present in the trunk) seems to be that the tm_clone
flag of cgrapn_node is not copied over to clones (of tm_clones).
Thus, the following patch fixes the testcase:

diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 4387b99..056d82b 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -562,6 +562,7 @@ cgraph_create_virtual_clone (struct cgraph_node *old_node,
   set_new_clone_decl_and_node_flags (new_node);
   new_node-clone.tree_map = tree_map;
   new_node-clone.args_to_skip = args_to_skip;
+  new_node-tm_clone = old_node-tm_clone;

   /* Clones of global symbols or symbols with unique names are unique.  */
   if ((TREE_PUBLIC (old_decl)

However, I do not really know what the semantics of that flag mean so
at least for now I am not going to propose this (I am also not quite
sure this is the best place for the copy).  What properties of a
function should be maintained in order to keep it flagged as a tm
clone?


[Bug c++/61214] [4.9/4.10 regression] Weird interaction between -fvisibility-inlines-hidden, inline virtuals and devirtualization

2014-06-03 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61214

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org ---
I wonder why we don't inline Foo::clone, though.


[Bug fortran/61404] New: Incorrect error message when misusing a structure component + explicit interface

2014-06-03 Thread bardeau at iram dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61404

Bug ID: 61404
   Summary: Incorrect error message when misusing a structure
component + explicit interface
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bardeau at iram dot fr

Dear gfortran developers,

gfortran issues an incorrect error message using the (invalid on purpose)
program below. It refers to the module providing the structure component,
instead of the actual line where the error lies (CALL statement). The bug is
observed with gfortran 4.9.0 but I also found it in gfortran 4.4.7, so it seems
to be here since a long time...


module gbl_message
  type :: mytype
integer(kind=4) :: e
  end type mytype
  type(mytype), parameter :: seve = mytype(1)
end module gbl_message
!
module gbl_interfaces
  interface
subroutine gagout(message)
  character(len=*), intent(in) :: message
end subroutine gagout
  end interface
end module gbl_interfaces
!
program test
  use gbl_message
  use gbl_interfaces
  ! Make an incorrect call according to the interface:
  call gagout(seve%e,'Some string')
end program test


$ gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --with-gmp=... --prefix=...
--enable-languages=c,c++,fortran
Thread model: posix
gcc version 4.9.0 (GCC)


$ gfortran test.f90
test.f90:17.6:

  use gbl_message
  1
Error: Type mismatch in argument 'message' at (1); passed INTEGER(4) to
CHARACTER(1)


You can see that the error message refers to the USE statement instead of the
CALL statement. If I change the line
  call gagout(seve%e,'Some string')
by
  call gagout(1,'Some string')
the error message is now correct.

Sebastien


[Bug c/61405] New: Not emitting enumeration value not handled in switch warning for bit-field enums

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61405

Bug ID: 61405
   Summary: Not emitting enumeration value not handled in switch
warning for bit-field enums
   Product: gcc
   Version: 4.10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: jamborm at gcc dot gnu.org

This a followup to PR 61340.  In both C and C++ we do not emit a
warning about unhandled enumeration values in a switch if the enum is
also a bit-field (and clang does, that is how it was noticed).

Testcase:

$ cat test.c
enum ipa_ref_use
{
  IPA_REF_LOAD,
  IPA_REF_STORE,
  IPA_REF_ADDR,
  IPA_REF_ALIAS
};

/* Record of reference in callgraph or varpool.  */
struct ipa_ref
{
  unsigned int lto_stmt_uid;
  unsigned int referred_index;
#ifndef PRODUCE_WARNING
  enum ipa_ref_use use:2;
#else
  enum ipa_ref_use use;
#endif
  unsigned int speculative:1;
};

int blah1 (unsigned int);
int blah2 (unsigned int);
int blah3 (unsigned int);

int
foo (struct ipa_ref *ref)
{
  int r;
  switch (ref-use)
{
case IPA_REF_LOAD:
  r = blah1 (ref-lto_stmt_uid) + 8;
  break;
case IPA_REF_STORE:
  r = blah2 (ref-referred_index +5) * 3;
  break;
case IPA_REF_ADDR:
  r = blah3 (ref-lto_stmt_uid + ref-speculative);
  break;
}
  return r;
}

$ ~/gcc/mine/inst/bin/gcc test.c -O -S -Wswitch
$ ~/gcc/mine/inst/bin/gcc test.c -O -S -Wswitch -DPRODUCE_WARNING
test.c: In function ‘foo’:
test.c:30:3: warning: enumeration value ‘IPA_REF_ALIAS’ not handled in switch
[-Wswitch]
   switch (ref-use)
   ^
$ clang test.c -O -S -Wswitch -DPRODUCE_WARNING
test.c:30:11: warning: enumeration value 'IPA_REF_ALIAS' not handled in switch
[-Wswitch]
  switch (ref-use)
  ^
1 warning generated.

[Bug target/61154] [4.10 Regression][ARM] wide-int merge introduced regressions in vshuf tests

2014-06-03 Thread christophe.lyon at st dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61154

--- Comment #9 from christophe.lyon at st dot com ---
I confirm it fixes the regressions I reported.
Thanks.


[Bug c/61405] Not emitting enumeration value not handled in switch warning for bit-field enums

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61405

--- Comment #1 from Martin Jambor jamborm at gcc dot gnu.org ---
The reason why we do not emit is that in c_do_switch_warnings in
c-family/c-common.c we check that:

  /* From here on, we only care about about enumerated types.  */
  if (!type || TREE_CODE (type) != ENUMERAL_TYPE)
return;

which fails because (unlike in the non-bit-field case) type is:

integer_type 0x76d5e150 public unsigned QI
size integer_cst 0x76c34768 type integer_type 0x76c36150
bitsizetype constant 8
unit size integer_cst 0x76c34780 type integer_type 0x76c360a8
sizetype constant 1
align 8 symtab 0 alias set -1 canonical type 0x76d5e150 precision 2 min
integer_cst 0x76d4adc8 0 max integer_cst 0x76d4ade0 3


[Bug ipa/61340] ipa-pure-const.c, ipa-reference.c: possible missing switch cases ?

2014-06-03 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61340

Martin Jambor jamborm at gcc dot gnu.org changed:

   What|Removed |Added

   Last reconfirmed||2014-6-3

--- Comment #3 from Martin Jambor jamborm at gcc dot gnu.org ---
As far as the unhandled values are concerned, I have posted a patch
addressing that to the mailing list:

https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00249.html

I have also opened a new bug, PR 61405 for tracking that we do not
warn for these enums and provided a simple testcase so I suggest any
discussion what can be done about that is moved there.


[Bug bootstrap/61315] wide-int.cc cannot be built by darwin system compiler

2014-06-03 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61315

--- Comment #15 from joseph at codesourcery dot com joseph at codesourcery dot 
com ---
On Wed, 28 May 2014, manu at gcc dot gnu.org wrote:

 Is any company spending money on GCC Fortran development? That would be 
 awesome
 if it were true!

It's true for OpenACC support.


[Bug c++/61344] Wswitch does not work with enum bitfields

2014-06-03 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61344

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

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
Martin opened another report, but he has more analysis there, so closing this
one.

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

[Bug middle-end/61396] [4.10 regression] ICE in simplify_immed_subreg

2014-06-03 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61396

Iain Sandoe iains at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-06-03
 CC||iains at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Iain Sandoe iains at gcc dot gnu.org ---
confirmed on ppc-darwin9


[Bug c/61405] Not emitting enumeration value not handled in switch warning for bit-field enums

2014-06-03 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61405

--- Comment #3 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
Related to PR53874.

[Bug c/61405] Not emitting enumeration value not handled in switch warning for bit-field enums

2014-06-03 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61405

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

   What|Removed |Added

 CC||manu at gcc dot gnu.org

--- Comment #2 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
*** Bug 61344 has been marked as a duplicate of this bug. ***

[Bug ipa/61340] ipa-pure-const.c, ipa-reference.c: possible missing switch cases ?

2014-06-03 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61340

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Blocks|61344   |61405
 Ever confirmed|0   |1

--- Comment #4 from Manuel López-Ibáñez manu at gcc dot gnu.org ---
Update blocking bug.

[Bug libstdc++/61227] [C++11] Regex [\w] does not work

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61227

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org ---
Because nothing changed on the 4.9 branch


[Bug c++/61381] constexpr non captured by template lambda

2014-06-03 Thread vincenzo.innocente at cern dot ch
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61381

vincenzo Innocente vincenzo.innocente at cern dot ch changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from vincenzo Innocente vincenzo.innocente at cern dot ch ---
confirmed it compile with
[trunk revision 211189]
a back port to 4.9.1. would be appreciated


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

2014-06-03 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48062

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
   Target Milestone|--- |4.10.0

--- Comment #5 from Marek Polacek mpolacek at gcc dot gnu.org ---
Mine.


[Bug libstdc++/60734] Undefined behavior in g++-v4/bits/stl_tree.h

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60734

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Jun  3 17:26:05 2014
New Revision: 211190

URL: http://gcc.gnu.org/viewcvs?rev=211190root=gccview=rev
Log:
Backport from mainline
2014-04-15  Jonathan Wakely  jwak...@redhat.com

PR libstdc++/60734
* include/bits/stl_tree.h (_Rb_tree::_M_end): Fix invalid cast.

Modified:
branches/gcc-4_9-branch/libstdc++-v3/ChangeLog
branches/gcc-4_9-branch/libstdc++-v3/include/bits/stl_tree.h


[Bug libstdc++/61227] [C++11] Regex [\w] does not work

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61227

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Jun  3 17:26:24 2014
New Revision: 211192

URL: http://gcc.gnu.org/viewcvs?rev=211192root=gccview=rev
Log:
Backport from mainline
2014-05-20  Tim Shen  timshe...@gmail.com

PR libstdc++/61227
* include/bits/regex_compiler.h
(_BracketMatcher::_M_add_character_class): Add negative character
class support.
* include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply):
Likewise.
* testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc:
Add more testcases.

Modified:
branches/gcc-4_9-branch/libstdc++-v3/ChangeLog
branches/gcc-4_9-branch/libstdc++-v3/include/bits/regex_compiler.h
branches/gcc-4_9-branch/libstdc++-v3/include/bits/regex_compiler.tcc
   
branches/gcc-4_9-branch/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/quoted_char.cc


[Bug libstdc++/61227] [C++11] Regex [\w] does not work

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61227

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |4.9.1

--- Comment #9 from Jonathan Wakely redi at gcc dot gnu.org ---
Now it's fixed on the 4.9 branch.


[Bug middle-end/60102] [4.9/4.10 Regression] powerpc fp-bit ices at dwf_regno

2014-06-03 Thread uweigand at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60102

--- Comment #12 from Ulrich Weigand uweigand at gcc dot gnu.org ---
(In reply to Sandra Loosemore from comment #9)
 I've been looking at this a little bit more.
 
 DWARF_FRAME_REGNUM is specifically documented to take a hard register number
 as its operand, so the assertion in dwf_regno is at least consistent with
 that.  The one in dbx_reg_number is more dubious, since neither
 LEAF_REG_REMAP or DBX_REGISTER_NUMBER are documented to require a hard
 register number.
 
 So: either the powerpc backend is broken to be using a pseudo in this
 context, or else the documentation for DWARF_FRAME_REGNUM should be changed
 to permit this and the assertions (as necessary) moved into the
 target-specific implementations of these macros.

All those routines are supposed to implement mappings from GCC internal hard
register numbers to some externally-defined number scheme (DWARF, DBX, ...), so
it is consistent that they only accept hard register numbers.

The rs6000 back-end isn't actually attempting to use a pseudo, they're just
using a quick hack there: apparently, with SPE registers, GCC internal hard
registers 0 .. 31 may be backed by a pair of external registers in debug info,
where the high element of the pair gets a DWARF number in the 1200 ... 1231
range.

The rs6000_dwarf_register_span attempts to implement that by returning a
PARALLEL of two registers.  Now, according to the rules, those both ought to be
hard registers.  However, there is no GCC internal number defined for the high
part of the pair.  The back-end used to hack around that by simply using the
DWARF number (in the 1200 ... 1231) range as hard regno, combined with
another hack in rs6000_dbx_register_number that then just passes that number
through unchanged to the DWARF assembler output.

This all worked as long as the middle-end didn't look too closely at those
PARALLELs ... but with those extra asserts, it now fails.

I guess I don't quite understand why there aren't real GCC hard regnos to cover
those SPE high parts ... that seems the cleanest solution.   Not sure if this
was done to avoid some drawback I'm not seeing right now ...


[Bug c/60439] No warning for case overflow in switch statement.

2014-06-03 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60439

--- Comment #8 from Marek Polacek mpolacek at gcc dot gnu.org ---
Author: mpolacek
Date: Tue Jun  3 17:35:34 2014
New Revision: 211194

URL: http://gcc.gnu.org/viewcvs?rev=211194root=gccview=rev
Log:
PR c/60439
* doc/invoke.texi: Document -Wswitch-bool.
* function.c (stack_protect_epilogue): Cast controlling expression of
the switch to int.
* gengtype.c (walk_type): Generate switch expression with its
controlling expression cast to int.
c/
* c-parser.c (c_parser_switch_statement): Pass explicit_cast_p to
c_start_case.
* c-tree.h (c_start_case): Update.
* c-typeck.c (c_start_case): Add new boolean parameter.  Warn if
switch condition has boolean value.
cp/
* semantics.c (finish_switch_cond): Warn if switch condition has
boolean value.
c-family/
* c.opt (Wswitch-bool): New option.
testsuite/
* c-c++-common/pr60439.c: New test.
* g++.dg/eh/scope1.C (f4): Add dg-warning.

Added:
trunk/gcc/testsuite/c-c++-common/pr60439.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c.opt
trunk/gcc/c/ChangeLog
trunk/gcc/c/c-parser.c
trunk/gcc/c/c-tree.h
trunk/gcc/c/c-typeck.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/semantics.c
trunk/gcc/doc/invoke.texi
trunk/gcc/function.c
trunk/gcc/gengtype.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/eh/scope1.C


[Bug c/60439] No warning for case overflow in switch statement.

2014-06-03 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60439

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Marek Polacek mpolacek at gcc dot gnu.org ---
Fixed.


[Bug c++/52174] [DR 1423] Implicit conversion of nullptr to bool

2014-06-03 Thread paolo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52174

--- Comment #7 from paolo at gcc dot gnu.org paolo at gcc dot gnu.org ---
Author: paolo
Date: Tue Jun  3 17:48:36 2014
New Revision: 211195

URL: http://gcc.gnu.org/viewcvs?rev=211195root=gccview=rev
Log:
gcc/cp
2014-06-03  Paolo Carlini  paolo.carl...@oracle.com

DR 1423
PR c++/52174
* call.c (standard_conversion): Convert nullptr to bool only
in case of direct-initialization.
(convert_like_real): Provide informative error message.

gcc/testsuite
2014-06-03  Paolo Carlini  paolo.carl...@oracle.com

DR 1423
PR c++/52174
* g++.dg/cpp0x/nullptr31.C: New.
* g++.dg/cpp0x/sfinae-nullptr1.C: Likewise.
* g++.dg/cpp0x/nullptr17.C: Update.

libstdc++-v3
2014-06-03  Paolo Carlini  paolo.carl...@oracle.com

DR 1423
PR c++/52174
* testsuite/20_util/is_assignable/value.cc: Update.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/nullptr31.C
trunk/gcc/testsuite/g++.dg/cpp0x/sfinae-nullptr1.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/cpp0x/nullptr17.C
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/testsuite/20_util/is_assignable/value.cc


[Bug c++/52174] [DR 1423] Implicit conversion of nullptr to bool

2014-06-03 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52174

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #8 from Paolo Carlini paolo.carlini at oracle dot com ---
Fixed for 4.10.0.


[Bug libstdc++/60734] Undefined behavior in g++-v4/bits/stl_tree.h

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60734

--- Comment #7 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Jun  3 17:58:51 2014
New Revision: 211197

URL: http://gcc.gnu.org/viewcvs?rev=211197root=gccview=rev
Log:
Backport from mainline
2014-04-15  Jonathan Wakely  jwak...@redhat.com

PR libstdc++/60734
* include/bits/stl_tree.h (_Rb_tree::_M_end): Fix invalid cast.

Modified:
branches/gcc-4_8-branch/libstdc++-v3/ChangeLog
branches/gcc-4_8-branch/libstdc++-v3/include/bits/stl_tree.h


[Bug libstdc++/60966] std::call_once sometime hangs

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60966

--- Comment #30 from Jonathan Wakely redi at gcc dot gnu.org ---
Author: redi
Date: Tue Jun  3 17:58:56 2014
New Revision: 211198

URL: http://gcc.gnu.org/viewcvs?rev=211198root=gccview=rev
Log:
Backport from mainline
2014-05-16  Jonathan Wakely  jwak...@redhat.com

PR libstdc++/60966
* include/std/future (__future_base::_State_baseV2::_M_set_result):
Signal condition variable after call_once returns.
(__future_base::_State_baseV2::_M_do_set): Do not signal here.
(promise::set_value, promise::set_exception): Increment the reference
count on the shared state until the function returns.
* testsuite/30_threads/promise/60966.cc: New.

Added:
branches/gcc-4_8-branch/libstdc++-v3/testsuite/30_threads/promise/60966.cc
Modified:
branches/gcc-4_8-branch/libstdc++-v3/ChangeLog
branches/gcc-4_8-branch/libstdc++-v3/include/std/future


[Bug libstdc++/60734] Undefined behavior in g++-v4/bits/stl_tree.h

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60734

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #8 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed for 4.8.4 and 4.9.1


[Bug libstdc++/60966] std::call_once sometime hangs

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60966

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #31 from Jonathan Wakely redi at gcc dot gnu.org ---
Fixed for 4.8.4 and 4.9.1


[Bug c++/59483] A nested lambda fails to find a protected name with qualified name

2014-06-03 Thread ville.voutilainen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59483

--- Comment #2 from Ville Voutilainen ville.voutilainen at gmail dot com ---
It seems that 58972 is a duplicate, and is fixed by the same patch.


[Bug fortran/29383] Fortran 2003/F95[TR15580:1999]: Floating point exception (IEEE) support

2014-06-03 Thread w6ws at earthlink dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29383

Walter Spector w6ws at earthlink dot net changed:

   What|Removed |Added

 CC||w6ws at earthlink dot net

--- Comment #12 from Walter Spector w6ws at earthlink dot net ---
Adding myself to the CC list, sympathizing with comment #5. Just
IEEE_ARITHMETIC intrinsic functions for basic setting (e.g., IEEE_VALUE) and
testing (e.g., IEEE_IS_NAN) with the default rounding mode, roughly equivalent
to what g95 supports, would be very useful.  I don't need fancy rounding modes.


[Bug c++/38612] Vague error diagnostics for pointer-to-member type incompatibility

2014-06-03 Thread bruck.michael at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38612

--- Comment #6 from Michael Bruck bruck.michael at googlemail dot com ---
(In reply to Manuel López-Ibáñez from comment #4)
 
 What do you think?
 
Looks great. My main beef was that the two errors were merged into one
diagnostic.

[Bug c++/51311] bogus array bounds warning

2014-06-03 Thread bruck.michael at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51311

Michael Bruck bruck.michael at googlemail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Michael Bruck bruck.michael at googlemail dot com ---
Not reproducible with 4.8.2.


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #16 from Eric Botcazou ebotcazou at gcc dot gnu.org ---
 unsigned int foo (unsigned short *x)
 {
   return x[0]  16 | x[1];
 }
 
 [...]
 gets you
 
 foo:
 lduh[%o0], %g1
 lduh[%o0+2], %o0
 sll %g1, 16, %g1
 jmp %o7+8
  or %o0, %g1, %o0
 
 which looks perfect to me.

Indeed, but after having gone through a perfectly useless transformation and
wasted cycles.  This reminds me of the ipa-split + inlining round trip.

Really SPARC machines aren't fast enough to allow such a silliness...


[Bug fortran/51976] [F2003] Support deferred-length character components of derived types (allocatable string length)

2014-06-03 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51976

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #16 from Jakub Jelinek jakub at gcc dot gnu.org ---
subroutine foo ()
  type dt
character(len=:), allocatable :: o
character(len=:), allocatable :: n(:)
  end type
  type (dt) :: d
  logical :: l
  integer :: n
  n = 4
  allocate(character(len=n+1) :: d%o)
  allocate(character(len=n+2) :: d%n(4))
end

seems to ICE during gimplification (there is 0 = 4; stmt in *.original), and
the length of d%n allocation is weird too.
subroutine bar ()
  character(len=:), allocatable :: o, o2
  character(len=:), allocatable :: n(:), n2(:)
  allocate(character(len=4) :: o, n(10))
  o2 = o
  n2 = n
end
ICEs too.


[Bug c/30020] improve diagnostics for limited range warning for a switch statement

2014-06-03 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30020

Marek Polacek mpolacek at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
   Target Milestone|--- |4.10.0


[Bug c++/58972] Lambda can't access private members

2014-06-03 Thread ville.voutilainen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58972

Ville Voutilainen ville.voutilainen at gmail dot com changed:

   What|Removed |Added

 CC||ville.voutilainen at gmail dot 
com

--- Comment #2 from Ville Voutilainen ville.voutilainen at gmail dot com ---
Uh oh. The current trunk ICEs with Daniel's code, but compiles Akim's testcase
correctly.


[Bug c++/58972] Lambda can't access private members

2014-06-03 Thread ville.voutilainen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58972

--- Comment #3 from Ville Voutilainen ville.voutilainen at gmail dot com ---
[ville@localhost ~]$ g++ --std=c++11 -c dan.cpp 
dan.cpp: In instantiation of ‘struct deriveT::foo(base::type) [with T = char;
base::type = int]::f_t’:
dan.cpp:18:5:   required from ‘void deriveT::foo(base::type) [with T = char;
base::type = int]’
dan.cpp:26:11:   required from here
dan.cpp:4:15: error: ‘typedef int base::type’ is protected
   typedef int type;
   ^
dan.cpp:15:11: error: within this context
   f_t(type a) : a(a) {}
   ^
dan.cpp: In instantiation of ‘void deriveT::foo(base::type) [with T = char;
base::type = int]’:
dan.cpp:26:11:   required from here
dan.cpp:18:10: internal compiler error: in instantiate_decl, at cp/pt.c:19746
 } f(a);
  ^
0x5c281f instantiate_decl(tree_node*, int, bool)
../../gcc/cp/pt.c:19745
0x638853 mark_used(tree_node*, int)
../../gcc/cp/decl2.c:5016
0x553bf3 build_over_call
../../gcc/cp/call.c:7325
0x55f470 build_new_method_call_1
../../gcc/cp/call.c:8037
0x55f470 build_new_method_call(tree_node*, tree_node*, vectree_node*, va_gc,
vl_embed**, tree_node*, int, tree_node**, int)
../../gcc/cp/call.c:8107
0x560549 build_special_member_call(tree_node*, tree_node*, vectree_node*,
va_gc, vl_embed**, tree_node*, int, int)
../../gcc/cp/call.c:7651
0x6bd6e9 expand_default_init
../../gcc/cp/init.c:1713
0x6bd6e9 expand_aggr_init_1
../../gcc/cp/init.c:1814
0x6bfdac build_aggr_init(tree_node*, tree_node*, int, int)
../../gcc/cp/init.c:1566
0x57360c build_aggr_init_full_exprs
../../gcc/cp/decl.c:5642
0x57360c check_initializer
../../gcc/cp/decl.c:5777
0x58556c cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int)
../../gcc/cp/decl.c:6445
0x5c9700 tsubst_expr
../../gcc/cp/pt.c:13650
0x5c5d83 tsubst_expr
../../gcc/cp/pt.c:13538
0x5c6a13 tsubst_expr
../../gcc/cp/pt.c:13724
0x5c401b instantiate_decl(tree_node*, int, bool)
../../gcc/cp/pt.c:20036
0x5fce67 instantiate_pending_templates(int)
../../gcc/cp/pt.c:20152
0x63a29f cp_write_global_declarations()
../../gcc/cp/decl2.c:4348
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See http://gcc.gnu.org/bugs.html for instructions.

[Bug fortran/61406] New: ICE on ASSOCIATE construct to literal array expression

2014-06-03 Thread adam at aphirst dot karoo.co.uk
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61406

Bug ID: 61406
   Summary: ICE on ASSOCIATE construct to literal array expression
   Product: gcc
   Version: 4.9.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: adam at aphirst dot karoo.co.uk

Created attachment 32885
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32885action=edit
demonstration of ICE for ASSOCIATE with array literal

Association of a name to a literal array expression (see attached test case)
results in an ICE.

I'm sure that this used to work in GCC 4.8 (at least, it seems to in the
mingw32 setup of 4.8 that I have at work, and on a friend's 4.6), but not here
in 4.9.0.

Compiled using `gfortran -Wall -Wextra -std=f2008`. No optimisations.

Arch Linux x86_64

-
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/gcc-multilib/src/gcc-4.9-20140521/configure
--prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man
--infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/
--enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared
--enable-threads=posix --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch
--disable-libssp --enable-gnu-unique-object --enable-linker-build-id
--enable-cloog-backend=isl --disable-cloog-version-check --enable-lto
--enable-plugin --enable-install-libiberty --with-linker-hash-style=gnu
--enable-multilib --disable-werror --enable-checking=release
Thread model: posix
gcc version 4.9.0 20140521 (prerelease) (GCC)


[Bug libstdc++/56166] std::string::clear() can throw despite being marked noexcept

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56166

--- Comment #12 from Jonathan Wakely redi at gcc dot gnu.org ---
I think __gnu_cxx::__rc_string has the same problem

There's a patch at https://gcc.gnu.org/ml/gcc-patches/2014-06/msg00278.html


[Bug fortran/61318] Improve error diagnostic by pointing to the expression and not to declared-at of a USE-associated variable

2014-06-03 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61318

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 CC||bardeau at iram dot fr

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr ---
*** Bug 61404 has been marked as a duplicate of this bug. ***


[Bug fortran/61404] Incorrect error message when misusing a structure component + explicit interface

2014-06-03 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61404

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Dominique d'Humieres dominiq at lps dot ens.fr ---
Duplicate.

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


[Bug c++/61382] parameter pack expansion unexpected order

2014-06-03 Thread thibaut.lutz at googlemail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61382

Thibaut LUTZ thibaut.lutz at googlemail dot com changed:

   What|Removed |Added

 CC||thibaut.lutz at googlemail dot 
com

--- Comment #2 from Thibaut LUTZ thibaut.lutz at googlemail dot com ---
@Jonathan: you might be referring to 56774. 59716 was a similar issue.

However I think this case is definitely NOT a bug. Here is why:

- let's decompose the line:
std::tupleARGS... r { get_singleARGS(posfoo++)... };

* std::tupleARGS... r{ ... }: this is a constructor call: std::tuple(args...)
* get_singleARGS(posfoo++)... expands to get_singleint(posfoo++),
get_singlefloat(posfoo++), get_singlefloat(posfoo++),
get_singleint(posfoo++)

Putting the two together, with the previous line:
int posfoo = 0;
std::tupleARGS... r ( get_singleint(posfoo++),
get_singlefloat(posfoo++),
get_singlefloat(posfoo++),
get_singleint(posfoo++));

This is the root of your problem: 
N3797 §8.3.6.9: The order of evaluation of function arguments is unspecified.

The pack expansion is working fine, but the increments to posfoo are not being
sequenced. Clang does evaluate arguments in the opposite order as GCC does,
which makes it look correct in this case, but it is still undefined behavior. 

You can re-write your get_single function to do a pack traversal instead.

[Bug c++/61382] parameter pack expansion unexpected order

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61382

--- Comment #3 from Jonathan Wakely redi at gcc dot gnu.org ---
(In reply to Thibaut LUTZ from comment #2)
 @Jonathan: you might be referring to 56774. 59716 was a similar issue.

They don't look related. I meant PR 51253

 However I think this case is definitely NOT a bug. Here is why:
 
 - let's decompose the line:
 std::tupleARGS... r { get_singleARGS(posfoo++)... };
 
 * std::tupleARGS... r{ ... }: this is a constructor call:
 std::tuple(args...)

No, this is not a valid transformation, the semantics of T r{args...} are not
the same as T r(args...), see [dcl.init.list] p4.


[Bug c++/51253] [C++11][DR 1030] Evaluation order (sequenced-before relation) among initializer-clauses in braced-init-list

2014-06-03 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51253

--- Comment #14 from Jonathan Wakely redi at gcc dot gnu.org ---
Trunk still gives -Wsequence-point warnings, and PR 61382 has an example that
still fails


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread thomas.preudhomme at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #17 from Thomas Preud'homme thomas.preudhomme at arm dot com ---
(In reply to Richard Biener from comment #12)
 
 I'd say
 
 Index: tree-ssa-math-opts.c
 ===
 --- tree-ssa-math-opts.c(revision 211170)
 +++ tree-ssa-math-opts.c(working copy)
 @@ -2149,7 +2149,8 @@ bswap_replace (gimple stmt, gimple_stmt_
unsigned align;
  
align = get_object_alignment (src);
 -  if (bswap  SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
 +  if (align  GET_MODE_ALIGNMENT (TYPE_MODE (load_type))
 +  SLOW_UNALIGNED_ACCESS (TYPE_MODE (load_type), align))
 return false;
  
/*  Compute address to load from and cast according to the size
 
 is obvious (and pre-approved).

Alright but tests need to be modified to add an xfail for target impacted by
this. I did such a change and also rewrote the tests to use aligned variable as
much as possible so that they are more meaningful on STRICT_ALIGNMENT targets.
I'll post it for review today (at least for the changes in the testsuite).


[Bug bootstrap/61320] [4.10 regression] ICE in jcf-parse.c:1622 (parse_class_file

2014-06-03 Thread thomas.preudhomme at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61320

--- Comment #18 from Thomas Preud'homme thomas.preudhomme at arm dot com ---
(In reply to Eric Botcazou from comment #16)
  unsigned int foo (unsigned short *x)
  {
return x[0]  16 | x[1];
  }
  
  [...]
  gets you
  
  foo:
  lduh[%o0], %g1
  lduh[%o0+2], %o0
  sll %g1, 16, %g1
  jmp %o7+8
   or %o0, %g1, %o0
  
  which looks perfect to me.
 
 Indeed, but after having gone through a perfectly useless transformation and
 wasted cycles.  This reminds me of the ipa-split + inlining round trip.
 
 Really SPARC machines aren't fast enough to allow such a silliness...

Fair enough but the information about alignment is only available late in the
pass so that most of the code is already executed. Only when the whole OR
expression has been processed do we know what is the lowest address and the
range of the memory access and therefore whether that access is aligned or not.

Also if the expression was loading a 32 bit value byte by byte then the
transformation would be useful. I'm already working on a patch to add a cost
model but this will just add more code to execute before taking the decision.
It will however prevent rewriting statements if the result will execute slower
on the target.

Maybe a better solution for sparc would be to add a switch for this pass and
disable it by default on sparc. What do you think about that?


[Bug libfortran/61173] [4.9/4.10 Regression] Erroneous end of file with internal read

2014-06-03 Thread jvdelisle at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61173

--- Comment #8 from Jerry DeLisle jvdelisle at gcc dot gnu.org ---
I will backport to 4.9 in the next few days so it will get into 4.9.1

I am not sure how your snapshot is set up.  If it is using dynamically loaded
library, you may be getting the newer gfortran calling an older libgfortran in
the library search path. So try with -static to see if that works. It should be
in the 4.10 trunk by the date you gave for the snapshot.


[Bug target/61407] New: Build errors on latest OS X 10.10 Yosemite with Xcode 6 on GCC 4.8.3

2014-06-03 Thread kassafari at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61407

Bug ID: 61407
   Summary: Build errors on latest OS X 10.10 Yosemite with Xcode
6 on GCC 4.8.3
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: kassafari at gmail dot com

Created attachment 32886
  -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=32886action=edit
make log

Will not build on latest OS X and Xcode... Attaching log...


[Bug tree-optimization/58483] missing optimization opportunity for const std::vector compared to std::array

2014-06-03 Thread dl.soluz at gmx dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58483

--- Comment #7 from dennis luehring dl.soluz at gmx dot net ---
clang got now support for 

(see:
http://clang-developers.42468.n3.nabble.com/missing-optimization-opportunity-for-const-std-vector-compared-to-std-array-td4034587.html#none)

void *__builtin_operator_new(size_t)
void __builtin_operator_delete(void*)

and using this in libc++ can reduce all testcases down to the const result

gcc seems to have removed these long time ago and i currently do understand
whats gcc solution could be


  1   2   >