[Bug rtl-optimization/68330] [6 Regression]: FAIL: gcc.target/alpha/pr42269-1.c scan-assembler-not addl on alpha-linux-gnu

2015-11-18 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68330

Uroš Bizjak  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Uroš Bizjak  ---
Fixed.

[Bug target/68416] [MPX] GCC emits a lot of redundant bndmov instructions

2015-11-18 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68416

--- Comment #1 from Ilya Enkovich  ---
Seems the problem is in register allocation.  Before allocation we have:

1: NOTE_INSN_DELETED  
6: NOTE_INSN_BASIC_BLOCK 2
2: r95:DI=di:DI   
  REG_DEAD di:DI  
3: r96:SI=si:SI   
  REG_DEAD si:SI  
4: r97:BND64=bnd0:BND64   
  REG_DEAD bnd0:BND64 
5: NOTE_INSN_FUNCTION_BEG 
8: {unspec[r97:BND64,r95:DI] 92;[r95:DI]=unspec[[r95:DI]] 95;}
9: NOTE_INSN_DELETED  
   10: {unspec[r97:BND64,r95:DI+0x7] 93;[r95:DI+0x7]=unspec[[r95:DI+0x7]] 95;}
  REG_DEAD r97:BND64  
   11: r87:DI=[r95:DI]
   12: {r92:BND64=unspec[[unspec[r95:DI,r87:DI] 91]] 90;use [r95:DI];}
  REG_DEAD r95:DI 
   13: r99:DI=sign_extend(r96:SI) 
  REG_DEAD r96:SI 
   14: NOTE_INSN_DELETED  
   15: r90:DI=r99:DI<<0x2+r87:DI  
  REG_DEAD r99:DI 
  REG_DEAD r87:DI 
   16: {unspec[r92:BND64,r90:DI] 92;[r90:DI]=unspec[[r90:DI]] 95;}
   17: NOTE_INSN_DELETED  
   18: {unspec[r92:BND64,r90:DI+0x3] 93;[r90:DI+0x3]=unspec[[r90:DI+0x3]] 95;}
  REG_DEAD r92:BND64  
   19: r103:SI=[r90:DI]   
  REG_DEAD r90:DI 
   24: ax:SI=r103:SI  
  REG_DEAD r103:SI
   25: use ax:SI  

After allocation:

1: NOTE_INSN_DELETED
6: NOTE_INSN_BASIC_BLOCK 2
4: [sp:DI-0x18]=bnd0:BND64
5: NOTE_INSN_FUNCTION_BEG
   28: bnd1:BND64=[sp:DI-0x18]
8: {unspec[bnd1:BND64,di:DI] 92;[di:DI]=unspec[[di:DI]] 95;}
9: NOTE_INSN_DELETED
   29: bnd2:BND64=[sp:DI-0x18]
   10: {unspec[bnd2:BND64,di:DI+0x7] 93;[di:DI+0x7]=unspec[[di:DI+0x7]] 95;}
   11: ax:DI=[di:DI]
   12: {bnd3:BND64=unspec[[unspec[di:DI,ax:DI] 91]] 90;use [di:DI];}
   30: [sp:DI-0x18]=bnd3:BND64
   13: si:DI=sign_extend(si:SI)
   14: NOTE_INSN_DELETED
   15: ax:DI=si:DI<<0x2+ax:DI
   31: bnd0:BND64=[sp:DI-0x18]
   16: {unspec[bnd0:BND64,ax:DI] 92;[ax:DI]=unspec[[ax:DI]] 95;}
   17: NOTE_INSN_DELETED
   32: bnd1:BND64=[sp:DI-0x18]
   18: {unspec[bnd1:BND64,ax:DI+0x3] 93;[ax:DI+0x3]=unspec[[ax:DI+0x3]] 95;}
   19: ax:SI=[ax:DI]
   24: ax:SI=ax:SI
   25: use ax:SI
   27: NOTE_INSN_DELETED

Here even simple r97:BND64=bnd0:BND64 goes through stack with a load at each
use like if bounds register usage kills it.

[Bug other/66827] [6 Regression] left shifts of negative value warnings due to C++14 switch

2015-11-18 Thread bonzini at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66827

Paolo Bonzini  changed:

   What|Removed |Added

 CC||bonzini at gnu dot org

--- Comment #4 from Paolo Bonzini  ---
Using

#define UNKNOWN_DEP_COST (-1u<<19)

is dangerous in case UNKNOWN_DEP_COST is later assigned to a long.  Do not do
this please.

[Bug sanitizer/68418] New: ubsan complains about left shifts even with -fwrapv

2015-11-18 Thread bonzini at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68418

Bug ID: 68418
   Summary: ubsan complains about left shifts even with -fwrapv
   Product: gcc
   Version: 5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: sanitizer
  Assignee: unassigned at gcc dot gnu.org
  Reporter: bonzini at gnu dot org
CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
jakub at gcc dot gnu.org, kcc at gcc dot gnu.org
  Target Milestone: ---

Left shifts into the sign bit is a kind of overflow, and the standard chooses
to treat left shifts of negative values the same way.

However, the -fwrapv option modifies the language to one where integers are
defined as two's complement---which also defines entirely the behavior of
shifts.  Sanitization of left shifts should be disabled when -fwrapv is in
effect.

[Bug sanitizer/68418] ubsan complains about left shifts even with -fwrapv

2015-11-18 Thread bonzini at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68418

Paolo Bonzini  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-11-18
   Assignee|unassigned at gcc dot gnu.org  |bonzini at gnu dot org
 Ever confirmed|0   |1

--- Comment #1 from Paolo Bonzini  ---
I have a patch.

[Bug middle-end/68375] [6 Regression] ICE in get_loop_body_in_bfs_order when dumping cfg with -fdump-tree-optimized-graph

2015-11-18 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68375

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-11-18
   Assignee|unassigned at gcc dot gnu.org  |ktkachov at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from ktkachov at gcc dot gnu.org ---
It does.
I'll test it out and submit a patch.
Thanks

[Bug ipa/68419] New: ICE segfault in determine_locally_known_aggregate_parts / ipa_compute_jump_functions_for_edge

2015-11-18 Thread cand at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68419

Bug ID: 68419
   Summary: ICE segfault in
determine_locally_known_aggregate_parts /
ipa_compute_jump_functions_for_edge
   Product: gcc
   Version: 5.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ipa
  Assignee: unassigned at gcc dot gnu.org
  Reporter: cand at gmx dot com
  Target Milestone: ---

Created attachment 36766
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36766=edit
Preprocessed source

Trying to build GCC 5.2 for m68k segfaults in bootstrap. Preprocessed source
attached.

Configure line:
../gcc-5.2.0/configure --prefix=/tmp/tmpgcc --target=m68k-elf
--enable-languages=c --disable-libssp --disable-tls --enable-threads=single

../../../../gcc-5.2.0/libgcc/unwind-dw2.c: In function 'uw_init_context_1':
../../../../gcc-5.2.0/libgcc/unwind-dw2.c:1695:0: internal compiler error:
Segmentation fault

Valgrind output:
==27154==
==27155== Memcheck, a memory error detector
==27155== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==27155== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==27155== Command: /tmp/gccbuild/./gcc/cc1 -quiet -I . -I . -I ../../.././gcc
-I ../../../../gcc-5.2.0/libgcc -I ../../../../gcc-5.2.0/libgcc/. -I
../../../../gcc-5.2.0/libgcc/../gcc -I ../../../../gcc-5.2.0/libgcc/../include
-imultilib m68000 -iprefix /tmp/gccbuild/gcc/../lib/gcc/m68k-elf/5.2.0/
-isystem /tmp/gccbuild/./gcc/include -isystem /tmp/gccbuild/./gcc/include-fixed
-MD unwind-dw2.d -MF unwind-dw2.dep -MP -MT unwind-dw2.o -D IN_GCC -D
CROSS_DIRECTORY_STRUCTURE -D IN_LIBGCC2 -D inhibit_libc -D HIDE_EXPORTS
-isystem /tmp/tmpgcc/m68k-elf/include -isystem /tmp/tmpgcc/m68k-elf/sys-include
-isystem ./include ../../../../gcc-5.2.0/libgcc/unwind-dw2.c -quiet -dumpbase
unwind-dw2.c -mcpu=68000 -auxbase-strip unwind-dw2.o -g -g -g -O2 -O2 -O2
-Wextra -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wold-style-definition -fbuilding-libgcc
-fno-stack-protector -fexceptions -fvisibility=hidden -o /tmp/ccQM5a7W.s
==27155==
==27155== Conditional jump or move depends on uninitialised value(s)
==27155==at 0x7CF980: determine_locally_known_aggregate_parts(gcall*,
tree_node*, tree_node*, ipa_jump_func*) (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x7D3D1E: ipa_compute_jump_functions_for_edge(func_body_info*,
cgraph_edge*) (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x7D4B0C:
analysis_dom_walker::before_dom_children(basic_block_def*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0xC91083: dom_walker::walk(basic_block_def*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x7D93DD: ipa_analyze_node(cgraph_node*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0xCCF973: ipcp_generate_summary() (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x8AE13E: execute_ipa_summary_passes(ipa_opt_pass_d*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x5EDFFF: symbol_table::compile() (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x5EF15C: symbol_table::finalize_compilation_unit() (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x4CF6B6: c_write_global_declarations() (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x97DB6B: compile_file() (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x97EBDF: do_compile() (in /tmp/gccbuild/gcc/cc1)
==27155==
==27155== Use of uninitialised value of size 8
==27155==at 0x7CF982: determine_locally_known_aggregate_parts(gcall*,
tree_node*, tree_node*, ipa_jump_func*) (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x7D3D1E: ipa_compute_jump_functions_for_edge(func_body_info*,
cgraph_edge*) (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x7D4B0C:
analysis_dom_walker::before_dom_children(basic_block_def*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0xC91083: dom_walker::walk(basic_block_def*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x7D93DD: ipa_analyze_node(cgraph_node*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0xCCF973: ipcp_generate_summary() (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x8AE13E: execute_ipa_summary_passes(ipa_opt_pass_d*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x5EDFFF: symbol_table::compile() (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x5EF15C: symbol_table::finalize_compilation_unit() (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x4CF6B6: c_write_global_declarations() (in
/tmp/gccbuild/gcc/cc1)
==27155==by 0x97DB6B: compile_file() (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x97EBDF: do_compile() (in /tmp/gccbuild/gcc/cc1)
==27155==
==27155== Use of uninitialised value of size 8
==27155==at 0x7CF991: determine_locally_known_aggregate_parts(gcall*,
tree_node*, tree_node*, ipa_jump_func*) (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x7D3D1E: ipa_compute_jump_functions_for_edge(func_body_info*,
cgraph_edge*) (in /tmp/gccbuild/gcc/cc1)
==27155==by 0x7D4B0C:
analysis_dom_walker::before_dom_children(basic_block_def*) (in
/tmp/gccbuild/gcc/cc1)
==27155==by 

[Bug ipa/68419] ICE segfault in determine_locally_known_aggregate_parts / ipa_compute_jump_functions_for_edge

2015-11-18 Thread cand at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68419

--- Comment #1 from Lauri Kasanen  ---
This is very similar to 64551, but not a dup. Another part of IPA failing.

[Bug target/67770] [4.9/5/6 Regression] i386: -fshrink-wrap can interact badly with trampolines

2015-11-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67770

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #4 from Jakub Jelinek  ---
Created attachment 36765
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36765=edit
gcc6-pr67770.patch

Untested fix.

[Bug tree-optimization/68402] [6 Regression] FAIL: gcc.dg/tree-ssa/split-path-1.c execution test with -m32

2015-11-18 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68402

Jeffrey A. Law  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 CC||law at redhat dot com
 Resolution|--- |FIXED

--- Comment #3 from Jeffrey A. Law  ---
I've installed Ajit's fix for the testcase on the trunk, which should fix this
problem.

[Bug fortran/68268] configure: error: GNU Fortran is not working;

2015-11-18 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68268

--- Comment #9 from kargl at gcc dot gnu.org ---
(In reply to isearcher from comment #8)
> Now here is a new problem. Gfortran can now produce the a.out, but when i
> run ./a.out, there is an error:
> 
> ./a.out: error while loading shared libraries: libgfortran.so.3: cannot open
> shared object file: No such file or directory
> 
> Ahy sugguestions?

GCC bugzilla is not a user support forum.
Post to gcc-help with questions of this 
nature.  The answer to your question lies
in the ldconfig documentation.

[Bug tree-optimization/68398] coremark regression due to r229685

2015-11-18 Thread law at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68398

Jeffrey A. Law  changed:

   What|Removed |Added

 CC||law at redhat dot com

--- Comment #1 from Jeffrey A. Law  ---
Sebastian,

That change was to avoid creating irreducible loops, which should be considered
a design requirement for the threader.  We've been willing to relax that
requirement in cases where we're able to collapse a multi-way branch.

So I think the thing to do is first verify whether or not the threading
opportunity we suppress would result in a multi-way branch being removed.  If
it doesn't, then we'll have to look and see if there's another relaxation we
can reasonably do.

The other possibility is cases where applying multiple jump threads results in
a reducible loop, but applying a subset results in an irreducible loop.  I know
of at least one case of that occurring (it's in the testsuite).  We haven't
tried to handle those situations to the best of my knowledge.

[Bug target/68410] config/nios2/nios2.c: 4123: duplicates in expression

2015-11-18 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68410

sandra at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2015-11-18
 CC||sandra at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |sandra at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from sandra at gcc dot gnu.org ---
I'll take care of it.  I just checked the processor documentation to make sure
that those weren't typos for some other values, but they are just duplicates.

[Bug c++/68385] [6 Regression] ICE building libstdc++ on arm-none-eabi

2015-11-18 Thread belagod at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68385

Tejas Belagod  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-11-18
 CC||belagod at gcc dot gnu.org,
   ||jason at redhat dot com
 Ever confirmed|0   |1

--- Comment #1 from Tejas Belagod  ---
Confirmed on arm-none-eabi with r230540.

[Bug ipa/68220] [5 Regression] Devirtualization ICE in record_target_from_binfo, at ipa-devirt.c:2389

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68220

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 18 15:23:48 2015
New Revision: 230550

URL: https://gcc.gnu.org/viewcvs?rev=230550=gcc=rev
Log:
2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/ipa/pr67056.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_0.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_1.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr67600.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr68220.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-3.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-4.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/diagnostic.c
branches/gcc-5-branch/gcc/ipa-inline-analysis.c
branches/gcc-5-branch/gcc/ipa-polymorphic-call.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug ipa/67783] [4.9/5 Regression] quadratic time consumption in IPA inlining with -O1 and higher

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67783

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 18 15:23:48 2015
New Revision: 230550

URL: https://gcc.gnu.org/viewcvs?rev=230550=gcc=rev
Log:
2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/ipa/pr67056.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_0.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_1.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr67600.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr68220.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-3.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-4.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/diagnostic.c
branches/gcc-5-branch/gcc/ipa-inline-analysis.c
branches/gcc-5-branch/gcc/ipa-polymorphic-call.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug c/66098] [5 regression] #pragma diagnostic 'ignored' not fully undone by pop for strict-overflow

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66098

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 18 15:23:48 2015
New Revision: 230550

URL: https://gcc.gnu.org/viewcvs?rev=230550=gcc=rev
Log:
2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/ipa/pr67056.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_0.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_1.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr67600.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr68220.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-3.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-4.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/diagnostic.c
branches/gcc-5-branch/gcc/ipa-inline-analysis.c
branches/gcc-5-branch/gcc/ipa-polymorphic-call.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug ipa/68057] [6 Regression] 450.soplex in SPEC CPU 2006 failed to build

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68057

--- Comment #13 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 18 15:23:48 2015
New Revision: 230550

URL: https://gcc.gnu.org/viewcvs?rev=230550=gcc=rev
Log:
2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/ipa/pr67056.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_0.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_1.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr67600.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr68220.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-3.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-4.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/diagnostic.c
branches/gcc-5-branch/gcc/ipa-inline-analysis.c
branches/gcc-5-branch/gcc/ipa-polymorphic-call.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug ipa/67056] [5 regression] Wrong code generated

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67056

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
  Known to fail||5.2.0

--- Comment #21 from Richard Biener  ---
Fixed.

[Bug c/66711] GCC does not correctly restore diagnostic state after pragma GCC diagnostic pop with -Werror

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66711

--- Comment #4 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 18 15:23:48 2015
New Revision: 230550

URL: https://gcc.gnu.org/viewcvs?rev=230550=gcc=rev
Log:
2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/ipa/pr67056.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_0.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_1.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr67600.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr68220.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-3.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-4.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/diagnostic.c
branches/gcc-5-branch/gcc/ipa-inline-analysis.c
branches/gcc-5-branch/gcc/ipa-polymorphic-call.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug ipa/67600] [5 Regression] Segfault when assigning only one char to ostreambuf_iterator compiled with -O2 or -O3

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67600

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #12 from Richard Biener  ---
r230550 | rguenth | 2015-11-18 16:23:48 +0100 (Wed, 18 Nov 2015) | 52 lines

2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

[Bug ipa/68220] [5 Regression] Devirtualization ICE in record_target_from_binfo, at ipa-devirt.c:2389

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68220

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
  Known to fail||5.2.0

--- Comment #9 from Richard Biener  ---
Fixed.

[Bug target/68416] [MPX] GCC emits a lot of redundant bndmov instructions

2015-11-18 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68416

Ilya Enkovich  changed:

   What|Removed |Added

 CC||vmakarov at redhat dot com

--- Comment #2 from Ilya Enkovich  ---
Vladimir, could you please help with this issue?  Do you know what may cause
such weird allocation?  May it be caused by wrong config for BND registers or
something in MPX instruction patterns?

[Bug lto/68384] LTO error for global register variables in PHP 7 compiling on powerpc64le

2015-11-18 Thread acsawdey at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68384

--- Comment #7 from acsawdey at gcc dot gnu.org ---
Testing with 270468, -flto-partition=max does work and the code runs. However
-flto-partition=1to1 gets the register global error.

[Bug tree-optimization/68417] [6 Regression] Missed vectorization opportunity when setting struct field

2015-11-18 Thread afomin.mailbox at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68417

--- Comment #1 from Alexander Fomin  ---
I'm sorry for the typo above.
Vectorization is OK for r230453, but we miss if-conversion since r230434.

[Bug tree-optimization/68417] [6 Regression] Missed vectorization opportunity when setting struct field

2015-11-18 Thread afomin.mailbox at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68417

--- Comment #2 from Alexander Fomin  ---
Sorry once again - looks like smth is also wrong with me today :)
I'm talking about r230454 and r230453 of course.

[Bug tree-optimization/63602] [4.9/5 Regression] [graphite] Wrong code w/ -O2 -ftree-loop-nest-optimize

2015-11-18 Thread spop at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63602

Sebastian Pop  changed:

   What|Removed |Added

  Known to work||6.0
Summary|[4.9/5/6 Regression] Wrong  |[4.9/5 Regression]
   |code w/ -O2 |[graphite] Wrong code w/
   |-ftree-loop-nest-optimize   |-O2
   ||-ftree-loop-nest-optimize
  Known to fail|6.0 |

--- Comment #5 from Sebastian Pop  ---
gcc 6.0 trunk does not go out of SSA anymore: we rewrote graphite's code gen
and added all scalar dependences crossing basic blocks to the dependence graph.

[Bug middle-end/68414] gcc doesn't emit .skip for .vtable_map_vars sections

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68414

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|6.0 |---

[Bug tree-optimization/68413] [6 Regression] internal compiler error: in vect_transform_stmt

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68413

Richard Biener  changed:

   What|Removed |Added

 CC||alahay01 at gcc dot gnu.org
   Target Milestone|--- |6.0
Summary|[GCC6] internal compiler|[6 Regression] internal
   |error: in   |compiler error: in
   |vect_transform_stmt |vect_transform_stmt

[Bug c/68337] [MPX] memcpy() for arrays with function pointers results in huge resource usage and binaries

2015-11-18 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68337

--- Comment #2 from Ilya Enkovich  ---
I found another related problem.  If we copy a couple of pointers using memcpy,
it may be inlined as a copy of a single wide integer.  Thus we also may loose
bounds due to memcpy inlining.

[Bug tree-optimization/68373] autopar fails on loop exit phi with argument defined outside loop

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68373

--- Comment #2 from vries at gcc dot gnu.org ---
Created attachment 36762
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36762=edit
Updated patch, to be tested

[Bug tree-optimization/68417] New: [6 Regression] Missed vectorization opportunity when setting struct field

2015-11-18 Thread afomin.mailbox at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68417

Bug ID: 68417
   Summary: [6 Regression] Missed vectorization opportunity when
setting struct field
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: afomin.mailbox at gmail dot com
CC: izamyatin at gmail dot com,
venkataramanan.kumar.gnu at gmail dot com, ysrumyan at 
gmail dot com
  Target Milestone: ---
Target: i686-*-*

Created attachment 36763
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36763=edit
A reproducer

A loop in the test attached compiled with -m32 -msse4.2 -O2 -ftree-vectorize is
no more vectorized after r230454(while on r223524.

[Bug target/67770] [4.9/5/6 Regression] i386: -fshrink-wrap can interact badly with trampolines

2015-11-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67770

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #2 from Jakub Jelinek  ---
So, the problem is that ix86_static_chain_on_stack is incompatible with
shrink-wrapping, if that i386 backend flag is on, then the function is either
called directly at function address + 0, or through trampoline at function
address + 1 (i.e. it bypasses the initial pushl %esi instruction).
But that of course relies on the first instruction being always pushl %esi, so
we have to ensure shrink wrapping does not change this.

Unfortunately, there is no target hook right now where the target would state
that shrink wrapping is undesirable for the current function for hard to
discover reasons like the above.
Bernd, do you think it is ok to add a target hook for this?  Or try to come up
with some other way how to tell that it is undesirable (some new insn note, ...
?).

[Bug tree-optimization/66131] [6 Regression] Wrong code w/ -O2 -ftree-loop-linear

2015-11-18 Thread bernd.edlinger at hotmail dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66131

--- Comment #1 from Bernd Edlinger  ---
Note: the test case as-it-is, does no longer reproduce on trunk.

[Bug target/67770] [4.9/5/6 Regression] i386: -fshrink-wrap can interact badly with trampolines

2015-11-18 Thread bernds at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67770

--- Comment #3 from Bernd Schmidt  ---
Shrink-wrapping is disabled if !HAVE_simple_return. So the predicate for that
pattern should detect that condition.

[Bug fortran/65751] Bogus in error message

2015-11-18 Thread dominiq at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65751

--- Comment #7 from dominiq at gcc dot gnu.org ---
Author: dominiq
Date: Wed Nov 18 16:29:58 2015
New Revision: 230553

URL: https://gcc.gnu.org/viewcvs?rev=230553=gcc=rev
Log:
2015-11-18  Dominique d'Humieres 

PR fortran/65751
* expr.c (gfc_check_pointer_assign): Fix error message.

* gfortran.dg/unlimited_polymorphic_2.f03: Update test.


Modified:
branches/gcc-5-branch/gcc/fortran/ChangeLog
branches/gcc-5-branch/gcc/fortran/expr.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/testsuite/gfortran.dg/unlimited_polymorphic_2.f03

[Bug ipa/67056] [5 regression] Wrong code generated

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67056

--- Comment #20 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 18 15:23:48 2015
New Revision: 230550

URL: https://gcc.gnu.org/viewcvs?rev=230550=gcc=rev
Log:
2015-11-18  Richard Biener  

Backport from mainline
2015-11-07  Jan Hubicka  

PR ipa/68057
PR ipa/68220
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
issue when offset is out of range.
(contains_type_p): Fix out of range check, clear dynamic flag.

* g++.dg/torture/pr68220.C: New testcase.
* g++.dg/lto/pr68057_0.C: Likewise.
* g++.dg/lto/pr68057_1.C: Likewise.

2015-10-23  Jan Hubicka  

PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.

* g++.dg/torture/pr67600.C: New testcase.

2015-10-12  Richard Biener  

PR ipa/67783
* ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
code that analyzes IVs on each stmt but in a cheaper way avoiding
quadratic behavior.

2015-10-11  Jan Hubicka  

PR ipa/67056
* ipa-polymorphic-call.c (possible_placement_new): If cur_offset
is negative we don't know the type.
(check_stmt_for_type_change): Skip constructors of non-polymorphic
types as those won't help devirutalization.

* g++.dg/ipa/pr67056.C: New testcase.

2015-08-11  Manuel López-Ibáñez  

PR c/66098
PR c/66711
* diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
account when deciding what was the command-line status.

* gcc.dg/pragma-diag-3.c: New test.
* gcc.dg/pragma-diag-4.c: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/ipa/pr67056.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_0.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/lto/pr68057_1.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr67600.C
branches/gcc-5-branch/gcc/testsuite/g++.dg/torture/pr68220.C
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-3.c
branches/gcc-5-branch/gcc/testsuite/gcc.dg/pragma-diag-4.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/diagnostic.c
branches/gcc-5-branch/gcc/ipa-inline-analysis.c
branches/gcc-5-branch/gcc/ipa-polymorphic-call.c
branches/gcc-5-branch/gcc/testsuite/ChangeLog

[Bug middle-end/68414] New: gcc doesn't emit .skip for .vtable_map_vars sections

2015-11-18 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68414

Bug ID: 68414
   Summary: gcc doesn't emit .skip for .vtable_map_vars sections
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ro at gcc dot gnu.org
CC: ctice at gcc dot gnu.org
  Target Milestone: ---
  Host: *-*-solaris2.*
Target: *-*-solaris2.*
 Build: *-*-solaris2.*

Created attachment 36760
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36760=edit
minimal patch, untested

While doing the libvtv port to Solaris, all testcases were failing on
Solaris/SPARC
with Solaris as.  It turned out that as doesn't set sh_addralign in the section
header for .vtable_map_vars.  This is not a problem with gas in this case, but
for a regular .bss section gcc emits .skip 1 which avoids this.

Consider the following:

$ cat align.bss.c
#define VTV_PAGE_SIZE 4096

char _vtable_map_vars_start []
__attribute__ ((aligned(VTV_PAGE_SIZE)))
  = { };
$ gcc -S align.bss.c
$ cat align.vmv.c
#define VTV_PAGE_SIZE 4096

char _vtable_map_vars_start []
__attribute__ ((aligned(VTV_PAGE_SIZE),section(".vtable_map_vars")))
  = { };
$ gcc -S align.vmv.c
$ diff -u align.{bss,vmv}.s
--- align.bss.s 2015-11-18 16:20:37.628513468 +0100
+++ align.vmv.s 2015-11-18 16:21:43.411691226 +0100
@@ -1,9 +1,9 @@
-   .file   "align.bss.c"
+   .file   "align.vmv.c"
.global _vtable_map_vars_start
-   .section".bss"
+   .section   
".vtable_map_vars%_vtable_map_vars_start",#alloc,#write,#progbits
+   .group 
_vtable_map_vars_start,".vtable_map_vars%_vtable_map_vars_start",#comdat
.align 4096
.type   _vtable_map_vars_start, #object
.size   _vtable_map_vars_start, 0
 _vtable_map_vars_start:
-   .skip 1
.ident  "GCC: (GNU) 5.1.0"

I think this needs to be fixed in varasm.c (assemble_variable) in the special
case for .vtable_map_vars, with something like the attached patch.  I'm just
not sure which conditions are necessary to avoid emitting .skip in
unappropriate
cases.

  Rainer

[Bug middle-end/68414] gcc doesn't emit .skip for .vtable_map_vars sections

2015-11-18 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68414

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug c/66098] [5 regression] #pragma diagnostic 'ignored' not fully undone by pop for strict-overflow

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66098

Richard Biener  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
  Known to fail||5.2.0

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug rtl-optimization/67609] [5 Regression] Generates wrong code for SSE2 _mm_load_pd

2015-11-18 Thread rth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67609

--- Comment #37 from Richard Henderson  ---
Author: rth
Date: Wed Nov 18 15:45:26 2015
New Revision: 230552

URL: https://gcc.gnu.org/viewcvs?rev=230552=gcc=rev
Log:
PR rtl-opt/67609

Backport from mainline
* config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
sse check to the exact conditions of PR 67609. 

* config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
narrowing subregs on SSE and MMX registers.
* doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
appear to be sub-words of multi-register pseudos must be rejected.
* doc/tm.texi: Regenerate.

Added:
branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr67609-2.c
branches/gcc-5-branch/gcc/testsuite/gcc.target/i386/pr67609.c
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/config/i386/i386.c
branches/gcc-5-branch/gcc/doc/tm.texi
branches/gcc-5-branch/gcc/doc/tm.texi.in

[Bug c++/68385] [6 Regression] ICE building libstdc++ on arm-none-eabi

2015-11-18 Thread andre.simoesdiasvieira at arm dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68385

Andre Vieira  changed:

   What|Removed |Added

 CC||andre.simoesdiasvieira@arm.
   ||com

--- Comment #2 from Andre Vieira  ---
Hi Jason,

I don't fully understand what is going wrong here, but when debugging I found
that the tree it complains about is coming from a call to
convert_to_integer_nofold in  the line in ocp_convert, this used to have a
fold_if_not_in_template. I found that I no longer got the ICE after reverting
the code there to fold 'converted'. Not sure this actually fixes it, I'd need
to look further into your patch for this. Hopefully this saves you some
debugging yourself.

The issue seemed to originate from a nop_expr around a param_declaration and
fold gets rid of it.

Hope this helps.

Cheers,
Andre

[Bug libgomp/68403] FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/loop-auto-1.c (internal compiler error)

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68403

vries at gcc dot gnu.org changed:

   What|Removed |Added

Summary|FAIL:   |FAIL:
   |libgomp.oacc-c++/../libgomp |libgomp.oacc-c++/../libgomp
   |.oacc-c-c++-common/loop-aut |.oacc-c-c++-common/loop-aut
   |o-1.c   |o-1.c (internal compiler
   |-DACC_DEVICE_TYPE_host=1|error)
   |-DACC_MEM_SHARED=1  |
   |(internal compiler error)   |

--- Comment #5 from vries at gcc dot gnu.org ---
Similar error with -DACC_DEVICE_TYPE_nvidia=1:
...
FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/loop-auto-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -foffload=nvptx-none (internal
compiler error)
FAIL: libgomp.oacc-c++/../libgomp.oacc-c-c++-common/loop-auto-1.c
-DACC_DEVICE_TYPE_nvidia=1 -DACC_MEM_SHARED=0 -foffload=nvptx-none (test for
excess errors)
...

[Bug fortran/68415] New: Internal compiler error on Class variable containing array of allocatable polymorphic variable

2015-11-18 Thread talebi.hossein at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68415

Bug ID: 68415
   Summary: Internal compiler error on Class variable containing
array of allocatable polymorphic variable
   Product: gcc
   Version: 5.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: talebi.hossein at gmail dot com
  Target Milestone: ---

Created attachment 36761
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36761=edit
fortran module

The compilation of the attached file gives the following error. If I change the
class on line 31, to type it will not happen. Or if I remove the line 20 it
will work as well. This might be related to the bug 59678.



define_class.f90:39:0:

 End Module define_class
 1
internal compiler error: in gfc_conv_expr_descriptor, at
fortran/trans-array.c:6534
0x6a87b0 gfc_conv_expr_descriptor(gfc_se*, gfc_expr*)
../../src/gcc/fortran/trans-array.c:6534
0x6cb79b gfc_trans_pointer_assignment(gfc_expr*, gfc_expr*)
../../src/gcc/fortran/trans-expr.c:7635
0x6cbe3c gfc_reset_vptr(stmtblock_t*, gfc_expr*)
../../src/gcc/fortran/trans-expr.c:358
0x6f8065 gfc_trans_deallocate(gfc_code*)
../../src/gcc/fortran/trans-stmt.c:5993
0x696e57 trans_code
../../src/gcc/fortran/trans.c:1824
0x6edd63 gfc_trans_if_1
../../src/gcc/fortran/trans-stmt.c:1115
0x6f409a gfc_trans_if(gfc_code*)
../../src/gcc/fortran/trans-stmt.c:1146
0x696f47 trans_code
../../src/gcc/fortran/trans.c:1762
0x6f53b1 gfc_trans_simple_do
../../src/gcc/fortran/trans-stmt.c:1654
0x6f53b1 gfc_trans_do(gfc_code*, tree_node*)
../../src/gcc/fortran/trans-stmt.c:1817
0x696f1a trans_code
../../src/gcc/fortran/trans.c:1774
0x6b6bc3 gfc_generate_function_code(gfc_namespace*)
../../src/gcc/fortran/trans-decl.c:5851
0x69a3a1 gfc_generate_module_code(gfc_namespace*)
../../src/gcc/fortran/trans.c:2036
0x654c1d translate_all_program_units
../../src/gcc/fortran/parse.c:5330
0x654c1d gfc_parse_file()
../../src/gcc/fortran/parse.c:5540
0x694235 gfc_be_parse_file
../../src/gcc/fortran/f95-lang.c:229
Please submit a full bug report,
with preprocessed source if appropriate.

[Bug tree-optimization/68402] [6 Regression] FAIL: gcc.dg/tree-ssa/split-path-1.c execution test with -m32

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68402

vries at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||patch

--- Comment #2 from vries at gcc dot gnu.org ---
patch: https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02217.html

[Bug tree-optimization/68317] [6 regression] ice in set_value_range, at tree-vrp.c:380

2015-11-18 Thread jiwang at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68317

--- Comment #9 from Jiong Wang  ---
(In reply to Richard Biener from comment #7)
> (In reply to Jiong Wang from comment #6)
> > Created attachment 36741 [details]
> > prototype-fix
> > 
> > diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
> > index b614412..55a6334 100644
> > --- a/gcc/tree-ssa-loop-manip.c
> > +++ b/gcc/tree-ssa-loop-manip.c
> > @@ -136,6 +136,11 @@ create_iv (tree base, tree step, tree var, struct loop
> > *loop,
> >  gsi_insert_seq_on_edge_immediate (pe, stmts);
> >  
> >phi = create_phi_node (vb, loop->header);
> > +  if (TREE_OVERFLOW (initial)
> > +  && TREE_CODE (initial) == INTEGER_CST
> > +  && int_fits_type_p (initial, TREE_TYPE (vb)))
> > +initial = drop_tree_overflow (initial);
> > +
> >add_phi_arg (phi, initial, loop_preheader_edge (loop), UNKNOWN_LOCATION);
> >add_phi_arg (phi, va, loop_latch_edge (loop), UNKNOWN_LOCATION);
> >  }
> 
> I think it's better to track down where the constant is generated.  I
> see initial is created by
> 
>   initial = force_gimple_operand (base, , true, var);
> 
> thus likely base is already the same constant (passed from the caller).
> 
> I usually set a breakpoint on the return statement of ggc_internal_alloc
> conditional on the return value being the tree with the overflow.
> 
> Once the overflow value is returned from fold_* () it should be stripped
> off its overflow flag.  Unconditionally so with just
> 
>   if (TREE_OVERFLOW_P (..))
>.. = drop_tree_overflow (..);

Richard,

 After further investigation on where the overflow flag comes
 from. I found there are too many possibility.

 For example, for the testcase reported in PR68326, it's originated at
 fully_constant_expression, at tree-ssa-pre.c when handling tcc_unary,
 the fold_unary will set overflag flag.

 While for the testcase in this PR, there are quite a few OVF variables,
 For the one caused the ICE, the OVF is inherited from another OVF
 variable and the most early I can track down is at tree-ssa-ccp.c, tree
 variable "simplified" is simplifed by gimple-fold infrastructure, and
 conclude to be overflowed which is correct (C source code is
 print(..."0x%08x...", (0xff4 + i) * 0x10..., the multiply are
 assumed to be generating signed int, thus overflowed.), While my understanding
 is it's only used to generate warning. So I tested to call drop_tree_overflow,
 but then later passes will re-calculate the variable, and re-set the overflow
 flag, for example in chrec_fold*.

 I don't undertand related code base, and fell it will be dangerous to 
 just call drop_tree_overflow in those places.

 After a second thinking, this ICE is caused by adjust_range_with_scev
 getting range with overflowed constants min or max. So given there are
 too many places to generate OVF, can we just do a check in
 adjust_range_with_scev, if the constant min or max in the range info
 can fit into the variable type, then naturally we should treat those
 OVF as false alarm and drop them? something like the following, which I
 think can fix the OVF side-effect caused by r230150.

diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index e2393e4..56440b1 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -4331,6 +4331,16 @@ adjust_range_with_scev (value_range *vr, struct loop
*loop,
  && is_positive_overflow_infinity (max)))
 return;

+  if (TREE_CODE (min) == INTEGER_CST
+  && TREE_OVERFLOW (min)
+  && int_fits_type_p (min, type))
+min = drop_tree_overflow (min);
+
+  if (TREE_CODE (max) == INTEGER_CST
+  && TREE_OVERFLOW (max)
+  && int_fits_type_p (max, type))
+max = drop_tree_overflow (max);
+
   set_value_range (vr, VR_RANGE, min, max, vr->equiv);
 }

[Bug tree-optimization/68373] autopar fails on loop exit phi with argument defined outside loop

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68373

vries at gcc dot gnu.org changed:

   What|Removed |Added

  Attachment #36762|0   |1
is obsolete||

--- Comment #3 from vries at gcc dot gnu.org ---
Created attachment 36764
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36764=edit
Updated patch v2, to be tested

[Bug other/68406] dbxout.c:2570:16: error: no matching function for call to 'hash_set<tree_node*>::traverse(vec<tree_node*>*)'

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68406

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug target/68416] New: [MPX] GCC emits a lot of redundant bndmov instructions

2015-11-18 Thread ienkovich at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68416

Bug ID: 68416
   Summary: [MPX] GCC emits a lot of redundant bndmov instructions
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: ienkovich at gcc dot gnu.org
  Target Milestone: ---

Many tests show we have lots of redundant bndmov instructions. E.g.:

>cat test.c
int
foo(int **arr, int i)
{
  return (*arr)[i];
}
>gcc -O2 -mmpx -fcheck-pointer-bounds test.c -S
>cat test.s
.file   "test.c"
.text
.p2align 4,,15
.globl  foo
.type   foo, @function
foo:
.LFB1:
.cfi_startproc
bndcl   (%rdi), %bnd0
bndmov  %bnd0, -24(%rsp)
movslq  %esi, %rsi
bndcu   7(%rdi), %bnd0
movq(%rdi), %rax
bndldx  (%rdi,%rax), %bnd3
leaq(%rax,%rsi,4), %rax
bndmov  %bnd3, -24(%rsp)
bndcl   (%rax), %bnd3
bndmov  -24(%rsp), %bnd1
bndcu   3(%rax), %bnd1
movl(%rax), %eax
bnd ret

Here we have 3 bndmov instructions we don't need.

[Bug tree-optimization/66131] [6 Regression] Wrong code w/ -O2 -ftree-loop-linear

2015-11-18 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66131

--- Comment #2 from Arseny Solokha  ---
(In reply to Bernd Edlinger from comment #1)
> Note: the test case as-it-is, does no longer reproduce on trunk.

You're right. I've just tried and failed to reproduce it w/
gcc-6.0.0-alpha20151115 and all Graphite-related flags that I normally use.

[Bug tree-optimization/68341] [6 Regression] FAIL: gcc.dg/graphite/interchange-{1,11,13}.c (internal compiler error)

2015-11-18 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68341

sandra at gcc dot gnu.org changed:

   What|Removed |Added

 CC||sandra at gcc dot gnu.org

--- Comment #2 from sandra at gcc dot gnu.org ---
I'm also seeing these failures on nios2-elf.

[Bug c++/68348] [6 regression] ICE: segfault in cxx_eval_constant_expression at cp/constexpr.c:3172

2015-11-18 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68348

--- Comment #3 from Marek Polacek  ---
A bit shorter:

struct C {
  constexpr C() : w(), x(), y() {}
  constexpr double fn() const noexcept;
  double w;
  double x;
  double y;
};
constexpr double C::fn() const noexcept { return w; }
C foo()
{
  C c;
  c.fn ();
  return c;
}

[Bug rtl-optimization/68173] gcc does not terminate with -O0 on source file with a very large expression

2015-11-18 Thread vmakarov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68173

--- Comment #7 from Vladimir Makarov  ---
GCC on trunk is 50 times slower than LLVM-3.7 in -O0 mode on this test.  In -O2
mode GCC is only 20% slower than LLVM-3.7 in the same mode and faster than
LLVM-3.7 with -O0.

About 80% of compile time GCC spent in RA, more accurately in bitmap code used
by LRA (actually bitmap code takes even more if we take their usage from other
passes).

Conversion bitmaps to sparsets where memory requirements permit did not help at
all.  After analyzing RA dumps (working with 8GB dump files in emacs even on
machine with 128GB memory is not fun as it reacts to any key press with big
delays), I believe the problem is not in RA but somewhere before as we have
*5M* allocnos and *10M* program points in -O0 mode and only *6K* allocnos and
*20K* program points in -O2 mode.  Even if I make RA instant, GCC will be still
10 times slower in -O0 mode than LLVM.  I guess solution for the PR would be
switching on some optimizations in -O0 mode which can help decreasing number of
pseudos but I am not sure it is a right thing to do in general.

[Bug target/68410] config/nios2/nios2.c: 4123: duplicates in expression

2015-11-18 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68410

--- Comment #3 from sandra at gcc dot gnu.org ---
Author: sandra
Date: Wed Nov 18 19:45:47 2015
New Revision: 230563

URL: https://gcc.gnu.org/viewcvs?rev=230563=gcc=rev
Log:
2015-11-18  Sandra Loosemore  

PR target/68410
* config/nios2/nios2.c (cdx_and_immed): Remove duplicate tests
from || expression.

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

[Bug target/68410] config/nios2/nios2.c: 4123: duplicates in expression

2015-11-18 Thread sandra at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68410

sandra at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from sandra at gcc dot gnu.org ---
Fixed now.

[Bug libstdc++/66059] make_integer_sequence should use a log(N) implementation

2015-11-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66059

--- Comment #10 from Jonathan Wakely  ---
(In reply to Adrian Wielgosik from comment #9)
>  TOTAL :   0.97 0.01 0.99   
> 119627 kB

By passing in the length of the first sequence instead of using sizeof... the
std::make_integer_sequence result comes down to:

 TOTAL :   0.23 0.01 0.25 
15114 kB

Which is very reasonable, and within an order of magnitude of Daniel's, which I
think is good enough (especially if we're going to get a compiler intrinsic
eventually anyway).

But rather than making that change I think the right thing to do is to fix the
front-end so that sizeof... doesn't make such a big difference and we don't
have to jump through hoops to avoid it. I'll file a PR for that tomorrow.

[Bug tree-optimization/65424] gcc does not recognize byte swaps implemented as loop.

2015-11-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65424

--- Comment #3 from Robert Clausecker  ---
I checked this again on a computer with more RAM and compilation does indeed
terminate
after 23 minutes. On the original machine, the compiler most likely swapped a
lot contrary
to my original report in which I didn't let the compiler run long enough to
start swapping.

Can someone mark this as CONFIRMED?

[Bug libstdc++/66059] make_integer_sequence should use a log(N) implementation

2015-11-18 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66059

--- Comment #11 from Jonathan Wakely  ---
(In reply to Jonathan Wakely from comment #7)
> The version I came up with is very close to Xeo's at stackoverflow. I tried
> something more like yours and it used a LOT more memory.
> 
> Here's what I tested:
> 
> #include 
> 
> namespace std
> {
>   template struct _Index_tuple { };
> 
> #if DUP
>   template struct _Itup_dup;
> 
>   template
> struct _Itup_dup<_Index_tuple<_Ind...>, 0>
> {
>   static constexpr size_t _Nm = sizeof...(_Ind);
>   using __type = _Index_tuple<_Ind..., _Nm + _Ind...>;
> };

It turns out that the huge cost of this version is not due to sizeof... it's
due to the static variable, _Nm

Avoiding sizeof... helps too, but not as much as eliminating the variable and
writing it as:

  using __type = _Index_tuple<_Ind..., sizeof...(_Ind) + _Ind...>;

[Bug go/68420] Errors with go escape analysis

2015-11-18 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68420

boger at us dot ibm.com changed:

   What|Removed |Added

 Target||ppc64le, x86_64

--- Comment #1 from boger at us dot ibm.com ---
Fails on ppc64le and x86_64.

[Bug rtl-optimization/68173] gcc takes a long time and a lot of memory with -O0 on source file with very large expression

2015-11-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68173

--- Comment #8 from Robert Clausecker  ---
I checked this again on a computer with more RAM and compilation does indeed
terminate
after 23 minutes. On the original machine, the compiler most likely swapped a
lot contrary
to my original report in which I didn't let the compiler run long enough to
start swapping.

Can someone mark this as CONFIRMED?

[Bug tree-optimization/65424] gcc does not recognize byte swaps implemented as loop.

2015-11-18 Thread fuz at fuz dot su
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65424

--- Comment #4 from Robert Clausecker  ---
Sorry, comment was posted to the wrong bug. I have trouble using your
bug reporting software, the “automatically go to next bug after making
a change” behaviour is weird and unintuitive.

[Bug go/68420] New: Errors with go escape analysis

2015-11-18 Thread boger at us dot ibm.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68420

Bug ID: 68420
   Summary: Errors with go escape analysis
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: go
  Assignee: ian at airs dot com
  Reporter: boger at us dot ibm.com
CC: cmang at google dot com
  Target Milestone: ---

Escape analysis for Go was added to gcc trunk, but there are errors when using
it.  It is not enabled by default, but requires the option -fgo-optimize-allocs
to enable it.

Details on the problem are documented in the golang issue tracker
https://github.com/golang/go/issues/12965.

I was asked to open this as a bugzilla in addition to the Go issue for gcc
tracking purposes.

[Bug lto/67548] [5/6 Regression] LTO drops weak binding with "ld -r"

2015-11-18 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67548

Jan Hubicka  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #8 from Jan Hubicka  ---
There are two incremental link implementations:

 1) HJ's binutils will concat the sections, 
 2) mainline binutils will invoke GCC via plugin and produce .o file with final
assembly.
The correct implementation IMO is 
 3) invoke GCC via plugin and produce the merge LTO file (i.e. cut the process
before WPA optimization starts and stream out everything again).

3) would be only way to also support fat LTO files.  Sadly we do not have
plugin API interface for 2) or 3).  2) would be relatively easy - we only need
to make GCC know it does incremental linking and assume that every symbol can
be bound externally.  I did not find way how to get this situation detected
from the plugin/wrapper though and I am not sure how useful it is in practice
given that it won't give you whole program optimization.

[Bug c++/68170] [6 Regression] Declaring friend template class template in C++1z produces error: specialization of ‘template class A’ must appear at namespace

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68170

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug tree-optimization/68379] [6 Regression] BB vectorization: definition in block 13 follows the use for SSA_NAME

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68379

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |6.0

[Bug tree-optimization/68157] [5/6 Regression] internal compiler error: in reassoc_stmt_dominates_stmt_p, at tree-ssa-reassoc.c:1287

2015-11-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68157

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 18 10:31:51 2015
New Revision: 230532

URL: https://gcc.gnu.org/viewcvs?rev=230532=gcc=rev
Log:
PR tree-optimization/68157
* tree-ssa-reassoc.c (attempt_builtin_powi): Set uid of
pow_stmt or mul_stmt from stmt's uid.
(reassociate_bb): Set uid of mul_stmt from stmt's uid.

* g++.dg/opt/pr68157.C: New test.

Added:
branches/gcc-5-branch/gcc/testsuite/g++.dg/opt/pr68157.C
Modified:
branches/gcc-5-branch/gcc/ChangeLog
branches/gcc-5-branch/gcc/testsuite/ChangeLog
branches/gcc-5-branch/gcc/tree-ssa-reassoc.c

[Bug rtl-optimization/67609] [5 Regression] Generates wrong code for SSE2 _mm_load_pd

2015-11-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67609

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #35 from Jakub Jelinek  ---
(In reply to Richard Henderson from comment #34)
> Fixed for 6; let's wait a bit and see if there's any more fallout
> before backporting to 5.

GCC 5.3 (rc1?) is ~ 2 weeks away, isn't it the right time for the backport now?

[Bug bootstrap/66038] [5 regression] (stage 2) build/genmatch issue (gcc/hash-table.h|c) with --disable-checking [ introduced by r218976 ]

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66038

Richard Biener  changed:

   What|Removed |Added

   Keywords||build
 Status|NEW |WAITING

--- Comment #30 from Richard Biener  ---
Any status update?  Does bootstrap work on trunk (with --disable-checking)?

[Bug other/68406] dbxout.c:2570:16: error: no matching function for call to 'hash_set<tree_node*>::traverse(vec<tree_node*>*)'

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68406

--- Comment #3 from vries at gcc dot gnu.org ---
(In reply to vries from comment #2)
> Now trying a build of r230533 with:
> - r230486 (Replace match.pd DEFINE_MATH_FNs with auto-generated lists) and 
> - r230476 (Add gencfn-macros.c)
> reverted. (The revert of r230476 on r230533 does not apply cleanly).

That approach is not working. Too many dependencies already.

[Bug fortran/66244] [4.9/5/6 Regression] ICE on assigning a value to a pointer variable

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66244

Richard Biener  changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
   Priority|P3  |P4

[Bug target/66930] [5 Regression]: gengtype.c is miscompiled during stage2

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66930

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #19 from Richard Biener  ---
Fixed I suppose?

[Bug target/66930] [5 Regression]: gengtype.c is miscompiled during stage2

2015-11-18 Thread olegendo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66930

--- Comment #20 from Oleg Endo  ---
Yes, fixed.  Although it probably could be reverted again because the actual
issue was in sh_find_set_of_reg and it has been extended.

I'll see if it's safe to revert it some time later.

[Bug tree-optimization/66992] [4.9/5/6 Regression] Incorrect array subscript is above bounds warning

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66992

Richard Biener  changed:

   What|Removed |Added

   Keywords||diagnostic,
   ||missed-optimization
   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-11-18
  Known to work||4.7.4
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener  ---
Confirmed.

[Bug rtl-optimization/67609] [5 Regression] Generates wrong code for SSE2 _mm_load_pd

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67609

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

--- Comment #36 from Richard Biener  ---
Yes please.

[Bug ipa/67600] [5 Regression] Segfault when assigning only one char to ostreambuf_iterator compiled with -O2 or -O3

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67600

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

--- Comment #11 from Richard Biener  ---
r229279 | hubicka | 2015-10-24 01:33:58 +0200 (Sat, 24 Oct 2015) | 7 lines


PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.
* g++.dg/torture/pr67600.C: New testcase.

[Bug middle-end/68067] [4.9/5 Regression] Wrong constant folding

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68067

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c/68062] [4.9/5/6 Regression] ICE when comparing vectors

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68062

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

--- Comment #10 from Richard Biener  ---
IMHO doing signed -> unsigned promotion (and consistently also for the result
then) should be allowed.

[Bug rtl-optimization/68205] [5 regression] ICE compiling gcc.c-torture/execute/20040709-2.c with -fno-common on arm-none-eabi

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68205

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug other/68406] dbxout.c:2570:16: error: no matching function for call to 'hash_set<tree_node*>::traverse(vec<tree_node*>*)'

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68406

--- Comment #6 from vries at gcc dot gnu.org ---
(In reply to vries from comment #5)
> (In reply to rsand...@gcc.gnu.org from comment #4)
> > Created attachment 36755 [details]
> > Patch
> >  Please try the attached.

> That seems to do the trick. The build has arrived at the point of building
> libraries, while it previously broke while building cc1.

Confirmed, build succeeded.

[Bug fortran/68196] [4.9/5/6 Regression] ICE on function result with procedure pointer component

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68196

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug fortran/66244] [4.9/5/6 Regression] ICE on assigning a value to a pointer variable

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66244

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |4.9.4

[Bug ada/66242] Front-end error if exception propagation disabled

2015-11-18 Thread charlet at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66242

--- Comment #4 from Arnaud Charlet  ---
Author: charlet
Date: Wed Nov 18 10:30:12 2015
New Revision: 230531

URL: https://gcc.gnu.org/viewcvs?rev=230531=gcc=rev
Log:
2015-11-18  Hristian Kirtchev  

PR ada/66242

* exp_ch3.adb (Default_Initialize_Object): Reimplemented. Abort
defer / undefer pairs are now encapsulated in a block with
an AT END handler. Partial finalization now takes restriction
No_Exception_Propagation into account when generating blocks.
* exp_ch7.adb Various reformattings.
(Create_Finalizer): Change
the generation of abort defer / undefer pairs and explain the
lack of an AT END handler.
(Process_Transient_Objects): Add generation of abort defer/undefer
pairs.
* exp_ch9.adb Various reformattings.
(Build_Protected_Subprogram_Body): Use
Build_Runtime_Call to construct a call to Abort_Defer.
(Build_Protected_Subprogram_Call_Cleanup): Use
Build_Runtime_Call to construct a call to Abort_Undefer.
(Expand_N_Asynchronous_Select): Use Build_Runtime_Call to
construct a call to Abort_Defer.
* exp_intr.adb (Expand_Unc_Deallocation): Abort defer
/ undefer pairs are now encapsulated in a block with
an AT END handler. Finalization now takes restriction
No_Exception_Propagation into account when generating blocks.
* exp_util.ads, exp_util.adb (Wrap_Cleanup_Procedure): Removed.


Modified:
trunk/gcc/ada/exp_ch3.adb
trunk/gcc/ada/exp_ch7.adb
trunk/gcc/ada/exp_ch9.adb
trunk/gcc/ada/exp_intr.adb
trunk/gcc/ada/exp_util.adb
trunk/gcc/ada/exp_util.ads

[Bug other/68406] dbxout.c:2570:16: error: no matching function for call to 'hash_set<tree_node*>::traverse(vec<tree_node*>*)'

2015-11-18 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68406

--- Comment #2 from vries at gcc dot gnu.org ---
Now trying a build of r230533 with:
- r230486 (Replace match.pd DEFINE_MATH_FNs with auto-generated lists) and 
- r230476 (Add gencfn-macros.c)
reverted. (The revert of r230476 on r230533 does not apply cleanly).

[Bug c++/57335] internal compiler error: in cxx_eval_bit_field_ref, at cp/semantics.c:6977

2015-11-18 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57335

Paolo Carlini  changed:

   What|Removed |Added

 CC||paolo.carlini at oracle dot com

--- Comment #12 from Paolo Carlini  ---
Surprisingly, no progress on this!? Any quick idea? Otherwise, I'm going to
look into it a bit (again)...

[Bug debug/65822] Used variant fun names in dwarf info for CTORs

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65822

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-11-18
   Target Milestone|4.9.4   |---
Summary|[4.9/5/6 Regression] Used   |Used variant fun names in
   |variant fun names in dwarf  |dwarf info for CTORs
   |info for CTORs  |
 Ever confirmed|0   |1
  Known to fail||5.2.0, 6.0
   Severity|normal  |enhancement

--- Comment #5 from Richard Biener  ---
The testcase doesn't compile with anything older than GCC 4.7 and GCC 4.7 has
the very same issue.

I had to strip down the testcase to make it compile with GCC 4.6 where I get
instead no debug info at all for the CTORS.

So not sure how this is a regression without a proper testcase and a
known-to-work
field set.

Confirmed on trunk.

[Bug ipa/66223] [5/6 Regression] Diagnostic of pure virtual function call broken, including __cxa_pure_virtual

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66223

Richard Biener  changed:

   What|Removed |Added

   Keywords||diagnostic
   Priority|P3  |P2
 CC||hubicka at gcc dot gnu.org

--- Comment #4 from Richard Biener  ---
So it boils down to a QOI issue as the program invokes undefined behavior
(unless the standard mandates sth for this case).

We currently use __builtin_unreachable () which indeed has some interesting
debugging effects but allows for best optimization.

[Bug target/68408] New: sparc-elf, c++: broken support for attribute init_priority.

2015-11-18 Thread sorganov at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68408

Bug ID: 68408
   Summary: sparc-elf, c++: broken support for attribute
init_priority.
   Product: gcc
   Version: 5.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sorganov at gmail dot com
  Target Milestone: ---

g++ at version 5.2.1 for sparc-elf misses proper support for attribute
init_priority: resulting ".ctors" section does not have priority number
appended to its name as it should be:

$ cat init-priority.cc 
struct A { A() {} } a __attribute__ ((init_priority(365)));

$ ~/try/sparc-elf-5.2.0/bin/sparc-elf-g++ -c -Wa,-ahdl -save-temps
init-priority.cc -o /dev/null | grep ctors
  83.section".ctors",#alloc,#write

g++ 3.4.4 on the same target correctly gives:

$ /opt/sparc-elf-3.4.4//bin/sparc-elf-g++ -c -Wa,-ahdl -save-temps
init-priority.cc -o /dev/null | grep ctors
  73.section".ctors.65170",#alloc,#write

g++ 5.2.1 on x86 target also correctly gives:

$ ~/try/gcc-5.2.0/bin/g++ -c -Wa,-ahdl -save-temps init-priority.cc -o
/dev/null | grep init_array
  75.section.init_array.00365,"aw"

[Bug ipa/67056] [5 regression] Wrong code generated

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67056

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug rtl-optimization/67037] [4.9/5 Regression] Wrong code at -O1 and above on ARM

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67037

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c++/67339] [5/6 Regression] Segfault when parsing a typename involving a template-alias

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67339

Richard Biener  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Priority|P3  |P2
  Known to work||4.9.3

[Bug c++/67354] [5/6 regression] internal compiler error: in add_to_same_comdat_group, at symtab.c:421

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67354

Richard Biener  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code
   Priority|P3  |P2

[Bug c++/67411] [5/6 Regression] internal compiler error: in tsubst_copy, at cp/pt.c:13473

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67411

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c++/67409] [5/6 Regression] tree-cfg.c dereferences a NULL pointer

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67409

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug c/68412] New: ICE with -Wall -Wextra in fold_binary_loc()

2015-11-18 Thread sirl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68412

Bug ID: 68412
   Summary: ICE with -Wall -Wextra in fold_binary_loc()
   Product: gcc
   Version: 6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sirl at gcc dot gnu.org
  Target Milestone: ---

With x86_64 gcc-6 r230524 (r230119 was still OK) compiling this little fragment
with -Wall -Wextra:

int testwarn(int *pCnShifted)
{
int cnShifted = *pCnShifted;
_Bool isNullSource = (cnShifted == ((-1) << (8)));

if (!isNullSource)
return 0;
else
return 1;
}

I see this ICE:

test.c: In function 'testwarn':
test.c:6:46: warning: left shift of negative value [-Wshift-negative-value]
 _Bool isNullSource = (cnShifted == ((-1) << (8)));
  ^~

test.c:6:5: internal compiler error: in fold_binary_loc, at fold-const.c:9085
 _Bool isNullSource = (cnShifted == ((-1) << (8)));
 ^

0x61056e fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*,
tree_node*)
../../gcc/fold-const.c:9082
0x6214d4 fold(tree_node*)
../../gcc/fold-const.c:11974
0x48ee10 warn_tautological_cmp(unsigned int, tree_code, tree_node*, tree_node*)
../../gcc/c-family/c-common.c:1927
0x454cb6 parser_build_binary_op(unsigned int, tree_code, c_expr, c_expr)
../../gcc/c/c-typeck.c:3528
0x470c08 c_parser_binary_expression
../../gcc/c/c-parser.c:6544
0x471075 c_parser_conditional_expression
../../gcc/c/c-parser.c:6187
0x471570 c_parser_expr_no_commas
../../gcc/c/c-parser.c:6104
0x471a92 c_parser_expression
../../gcc/c/c-parser.c:8250
0x46ce4f c_parser_postfix_expression
../../gcc/c/c-parser.c:7412
0x46f45a c_parser_unary_expression
../../gcc/c/c-parser.c:6774
0x470137 c_parser_cast_expression
../../gcc/c/c-parser.c:6607
0x470355 c_parser_binary_expression
../../gcc/c/c-parser.c:6416
0x471075 c_parser_conditional_expression
../../gcc/c/c-parser.c:6187
0x471570 c_parser_expr_no_commas
../../gcc/c/c-parser.c:6104
0x47fd5a c_parser_initializer
../../gcc/c/c-parser.c:4225
0x4690fc c_parser_declaration_or_fndef
../../gcc/c/c-parser.c:1850
0x46c8cb c_parser_compound_statement_nostart
../../gcc/c/c-parser.c:4688
0x480fce c_parser_compound_statement
../../gcc/c/c-parser.c:4599
0x469a41 c_parser_declaration_or_fndef
../../gcc/c/c-parser.c:2017
0x48460d c_parser_external_declaration
../../gcc/c/c-parser.c:1461

[Bug target/68363] [4.9/5/6 Regression] ICE: in recog_memoized, at recog.h:167 with RTL checking with -mfix-cortex-a53-835769 @ aarch64

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68363

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2

[Bug rtl-optimization/68328] [4.9/5/6 Regression] wrong code at -O2 and -O3 on x86_64-linux-gnu

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68328

Richard Biener  changed:

   What|Removed |Added

   Keywords||wrong-code
   Priority|P3  |P2

[Bug ipa/66616] [4.9/5/6 regression] fipa-cp-clone ignores thunk

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66616

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-11-18
 CC||jamborm at gcc dot gnu.org
  Known to work||4.8.5
 Ever confirmed|0   |1
  Known to fail||4.9.3, 5.2.0, 6.0

--- Comment #5 from Richard Biener  ---
Still broken.

[Bug tree-optimization/66868] [5 Regression] wrong code generated with -O3 (dead code removal?)

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66868

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2015-11-18
Summary|[5/6 Regression] wrong code |[5 Regression] wrong code
   |generated with -O3 (dead|generated with -O3 (dead
   |code removal?)  |code removal?)
 Ever confirmed|0   |1

--- Comment #12 from Richard Biener  ---
Matthias, can you bisect what makes it work on trunk?

[Bug c++/66921] [4.9/5/6 Regression] failure to determine size of static constexpr array that is nested within a templated class

2015-11-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66921

Richard Biener  changed:

   What|Removed |Added

   Keywords||rejects-valid
   Priority|P3  |P2

[Bug c++/68407] Code generation failure, "rep ret" in .s file

2015-11-18 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68407

Markus Trippelsdorf  changed:

   What|Removed |Added

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

--- Comment #1 from Markus Trippelsdorf  ---
Use a newer binutils. Not a gcc issue.

  1   2   3   >