]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
7 years ago PR tree-optimization/82965
hubicka [Fri, 13 Apr 2018 08:59:05 +0000 (08:59 +0000)] 
PR tree-optimization/82965
PR tree-optimization/83991
* cfgloopanal.c (expected_loop_iterations_unbounded): Add
by_profile_only parameter.
* cfgloopmanip.c (scale_loop_profile): Further scale loop's profile
        information if the loop was predicted to iterate too many times.
* cfgloop.h (expected_loop_iterations_unbounded): Update prototype

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

7 years ago PR lto/71991
hubicka [Fri, 13 Apr 2018 08:51:47 +0000 (08:51 +0000)] 
PR lto/71991
* config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for
always inline.
* gcc.target/i386/pr71991.c: New testcase.

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

7 years ago PR middle-end/81657
jakub [Fri, 13 Apr 2018 08:35:32 +0000 (08:35 +0000)] 
PR middle-end/81657
* expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET.
* expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET.
* builtins.c (expand_builtin_memory_copy_args): Use
BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target,
handle dest_addr == pc_rtx.

* gcc.dg/string-opt-1.c: Remove bogus comment.  Expect a mempcpy
call.

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

7 years agoFix gcc.dg/debug/pr41893-1.c with Solaris ld (PR lto/81968)
ro [Fri, 13 Apr 2018 08:02:15 +0000 (08:02 +0000)] 
Fix gcc.dg/debug/pr41893-1.c with Solaris ld (PR lto/81968)

PR lto/81968
* simple-object.c (handle_lto_debug_sections): Keep .comment
section.

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

7 years agoDaily bump.
gccadmin [Fri, 13 Apr 2018 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

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

7 years agoPrevent erroneous "macro had not yet been defined" messages (PR c++/85385)
dmalcolm [Thu, 12 Apr 2018 23:44:09 +0000 (23:44 +0000)] 
Prevent erroneous "macro had not yet been defined" messages (PR c++/85385)

PR c++/85385 reports an issue where we emit bogus "macro had not yet been
defined" notes when a macro is mis-used:

  $ cat test.c
  #define MACRO(X,Y)

  void test ()
  {
    MACRO(42);
  }

  $ ./xg++ -B. -c test.c
  test.c:5:11: error: macro "MACRO" requires 2 arguments, but only 1 given
     MACRO(42);
             ^
  test.c: In function ‘void test()’:
  test.c:5:3: error: ‘MACRO’ was not declared in this scope
     MACRO(42);
     ^~~~~
  test.c:5:3: note:
  test.c:1: note: it was later defined here
   #define MACRO(X,Y)

The macro *had* been defined, it was merely misused.

This patch fixes the issue by only issuing the note if the use location
is before the definition location (using linemap_location_before_p).

gcc/cp/ChangeLog:
PR c++/85385
* name-lookup.c (macro_use_before_def::maybe_make): New function,
checking that the use is indeed before the definition.
(macro_use_before_def::macro_use_before_def): Make private.
(macro_use_before_def::~macro_use_before_def): Make private.  Move
check for UNKNOWN_LOCATION to macro_use_before_def::maybe_make.
(lookup_name_fuzzy): Call macro_use_before_def::maybe_make rather
than using new directly.

gcc/testsuite/ChangeLog:
PR c++/85385
* g++.dg/diagnostic/macro-arg-count.C: New test.

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

7 years ago2018-04-12 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Thu, 12 Apr 2018 21:58:54 +0000 (21:58 +0000)] 
2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/83064
PR testsuite/85346
* trans-stmt.c (gfc_trans_forall_loop): Use annot_expr_ivdep_kind
for annotation and remove dependence on -ftree-parallelize-loops.

2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/83064
PR testsuite/85346
* gfortran.dg/do_concurrent_5.f90: Dynamically allocate main work
array and move test to libgomp/testsuite/libgomp.fortran.
* gfortran.dg/do_concurrent_6.f90: New test.

2018-04-12  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/83064
PR testsuite/85346
* testsuite/libgomp.fortran/do_concurrent_5.f90: Move modified
test from gfortran.dg to here.

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

7 years agoFix comments that misspell names of files and classes
redi [Thu, 12 Apr 2018 20:55:02 +0000 (20:55 +0000)] 
Fix comments that misspell names of files and classes

* src/c++11/Makefile.am: Fix comment.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/cxx11-ios_failure.cc: Fix comment.
* src/c++98/ios_failure.cc: Likewise.

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

7 years ago PR c++/85356 - ICE with pointer to member function.
jason [Thu, 12 Apr 2018 20:03:33 +0000 (20:03 +0000)] 
PR c++/85356 - ICE with pointer to member function.

* pt.c (maybe_instantiate_noexcept): Do instantiate in templates if
flag_noexcept_type.  Build the new spec within the function context.
* except.c (build_noexcept_spec): Do get constant value in templates
if flag_noexcept_type.
* decl.c (check_redeclaration_exception_specification): Don't
instantiate noexcept on a dependent declaration.

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

7 years ago PR c++/85258
mpolacek [Thu, 12 Apr 2018 20:02:47 +0000 (20:02 +0000)] 
PR c++/85258
* constexpr.c (reduced_constant_expression_p): Return false for null
trees.

* g++.dg/parse/error61.C: New test.

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

7 years agors6000: Fix an ICE with -mno-direct-move (PR85291)
segher [Thu, 12 Apr 2018 20:01:37 +0000 (20:01 +0000)] 
rs6000: Fix an ICE with -mno-direct-move (PR85291)

PR target/85291
* config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if
asked to not generate direct moves.
(fix_trunc<mode>si2_stfiwx): Similar.
(fix_trunc<mode>si2_internal): Similar.

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

7 years ago PR debug/83157
jakub [Thu, 12 Apr 2018 19:30:00 +0000 (19:30 +0000)] 
PR debug/83157
* var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST.
* cselib.c (cselib_record_sets): For STRICT_LOW_PART dest,
lookup if dest in some wider mode is known to be const0_rtx and
if so, record permanent equivalence for it to be ZERO_EXTEND of
the narrower mode destination.

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

7 years agoRevert 259346.
cesar [Thu, 12 Apr 2018 18:48:56 +0000 (18:48 +0000)] 
Revert 259346.

gcc/
* lto-streamer-out.c (output_function): Revert 259346.
* omp-expand.c (expand_oacc_for): Likewise.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: Revert 259346.
* testsuite/libgomp.oacc-fortran/pr84955.f90:Likewise.

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

7 years agogcc/testsuite/ChangeLog:
kelvin [Thu, 12 Apr 2018 16:16:08 +0000 (16:16 +0000)] 
gcc/testsuite/ChangeLog:

2018-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/85347
* gcc.target/powerpc/vec-ldl-1.c: Change dejagnu directives to
specify -mvsx on gcc command line.

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

7 years agoRemove #define made redundant by r259281
redi [Thu, 12 Apr 2018 16:06:03 +0000 (16:06 +0000)] 
Remove #define made redundant by r259281

The definition of __throw_ios_failure is no longer in this file, so
setting the macro here is unnecessary.

* src/c++11/ios.cc: Remove redundant macro definition.

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

7 years agosel-sched: move cleanup_cfg before calculate_dominance_info (PR 85354)
amonakov [Thu, 12 Apr 2018 15:40:44 +0000 (15:40 +0000)] 
sel-sched: move cleanup_cfg before calculate_dominance_info (PR 85354)

PR rtl-optimization/85354
* sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call...
* sel-sched.c (sel_global_init): ... here.

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

7 years ago PR target/85238
ebotcazou [Thu, 12 Apr 2018 14:18:17 +0000 (14:18 +0000)] 
PR target/85238
* lto-wrapper.c (debug_objcopy): Open the files in binary mode.
* dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO
mode for PE-COFF targets.
* config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare.
(i386_pe_asm_lto_end): Likewise.
* config/i386/cygming.h (TARGET_ASM_LTO_START): Define.
(TARGET_ASM_LTO_END): Likewise.
* config/i386/winnt.c (saved_debug_info_level): New static variable.
(i386_pe_asm_lto_start): New function.
(i386_pe_asm_lto_end): Likewise.

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

7 years agoPR middle-end/84955
cesar [Thu, 12 Apr 2018 13:15:45 +0000 (13:15 +0000)] 
PR middle-end/84955

gcc/
* lto-streamer-out.c (output_function): Fix CFG loop state before
streaming out.
* omp-expand.c (expand_oacc_for): Handle calls to internal
functions like regular functions.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/pr84955.c: New test.
* testsuite/libgomp.oacc-fortran/pr84955.f90: New test.

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

7 years ago2018-04-12 Richard Biener <rguenther@suse.de>
rguenth [Thu, 12 Apr 2018 12:27:14 +0000 (12:27 +0000)] 
2018-04-12  Richard Biener  <rguenther@suse.de>

PR lto/85371
* dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label]
for the early LTO debug to properly generate references to it
during DIE emission.  Do not re-use that for the skeleton for
split-dwarf.
(dwarf2out_early_finish): Likewise.

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

7 years ago PR target/85328
jakub [Thu, 12 Apr 2018 11:17:23 +0000 (11:17 +0000)] 
PR target/85328
* config/i386/sse.md
(<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split,
<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split,
vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi,
vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg
and output is a reg, avoid creating invalid lowpart subreg, but
instead split into a 512-bit move.  Don't split if not AVX512VL,
input is xmm16+ reg and output is a mem.
(vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi,
vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is
xmm16+ reg and output is a mem.

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

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

7 years agoIBM Z: Spectre: Prevent thunk cfi to be emitted with -fno-dwarf2-cfi-asm
krebbel [Thu, 12 Apr 2018 09:14:57 +0000 (09:14 +0000)] 
IBM Z: Spectre: Prevent thunk cfi to be emitted with -fno-dwarf2-cfi-asm

The CFI magic we emit as part of the indirect branch thunks in order to
have somewhat sane unwind information must not be emitted with
-fno-dwarf2-cfi-asm.

gcc/ChangeLog:

2018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_output_indirect_thunk_function): Check
also for flag_dwarf2_cfi_asm.

gcc/testsuite/ChangeLog:

2018-04-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/nobp-no-dwarf2-cfi.c: New test.

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

7 years ago2018-04-11 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Thu, 12 Apr 2018 08:44:47 +0000 (08:44 +0000)] 
2018-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Move...
* g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: ... here.

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

7 years ago PR rtl-optimization/85342
jakub [Thu, 12 Apr 2018 08:39:50 +0000 (08:39 +0000)] 
PR rtl-optimization/85342
* regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use
a bool scalar var inside of the loop instead.  Don't try to update
recog_data.operand after failed apply_change_group.

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

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

7 years ago[nvptx] Fix handling of extern var with flexible array member
vries [Thu, 12 Apr 2018 07:17:29 +0000 (07:17 +0000)] 
[nvptx] Fix handling of extern var with flexible array member

2018-04-12  Tom de Vries  <tom@codesourcery.com>

PR target/85296
* config/nvptx/nvptx.c (flexible_array_member_type_p): New function.
(nvptx_assemble_decl_begin): Add undefined param.  Declare undefined
array with flexible array member as array without given dimension.
(nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call
argument for undefined param to true.

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

7 years agoDaily bump.
gccadmin [Thu, 12 Apr 2018 00:16:14 +0000 (00:16 +0000)] 
Daily bump.

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

7 years ago * lib/asan-dg.exp: Don't run tests if ulimit -v is set.
jason [Wed, 11 Apr 2018 23:43:28 +0000 (23:43 +0000)] 
* lib/asan-dg.exp: Don't run tests if ulimit -v is set.

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

7 years ago2018-04-11 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 11 Apr 2018 18:14:07 +0000 (18:14 +0000)] 
2018-04-11  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Move...
* g++.dg/cpp0x/Wzero-as-null-pointer-constant-3.C: ... here.

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

7 years ago gcc/testsuite
amker [Wed, 11 Apr 2018 16:50:16 +0000 (16:50 +0000)] 
gcc/testsuite
PR testsuite/85190
* gcc.dg/vect/pr81196.c: Remove function with undefined behavior.

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

7 years ago PR c++/70808
jakub [Wed, 11 Apr 2018 15:55:15 +0000 (15:55 +0000)] 
PR c++/70808
* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: Require c++11
effective target.

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

7 years ago2018-04-11 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Wed, 11 Apr 2018 15:25:42 +0000 (15:25 +0000)] 
2018-04-11  Aaron Sawdey  <acsawdey@linux.ibm.com>

PR target/85321
* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
-mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe
from PowerPC section.
* config/rs6000/sysv4.opt (mcall-): Improve help text.
* config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim
help text that is too long.
* config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim
help text that is too long.
* config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim
help text that is too long.

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

7 years ago * config/alpha/alpha.md (stack_probe_internal): Rename
uros [Wed, 11 Apr 2018 15:06:12 +0000 (15:06 +0000)] 
* config/alpha/alpha.md (stack_probe_internal): Rename
from "probe_stack".  Update all callers.

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

7 years agosched-deps: respect deps->readonly in macro-fusion (PR 84566)
amonakov [Wed, 11 Apr 2018 14:36:04 +0000 (14:36 +0000)] 
sched-deps: respect deps->readonly in macro-fusion (PR 84566)

PR rtl-optimization/84566
* sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking
sched_macro_fuse_insns.

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

7 years agosched-rgn: run add_branch_dependencies for sel-sched (PR 84301)
amonakov [Wed, 11 Apr 2018 14:32:32 +0000 (14:32 +0000)] 
sched-rgn: run add_branch_dependencies for sel-sched (PR 84301)

PR target/84301
* sched-rgn.c (add_branch_dependences): Move sel_sched_p check here...
(compute_block_dependences): ... from here.

testsuite/
* gcc.target/i386/pr84301.c: New test.

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

7 years ago PR tree-optimization/85331
jakub [Wed, 11 Apr 2018 13:35:13 +0000 (13:35 +0000)] 
PR tree-optimization/85331
* vec-perm-indices.h (vec_perm_indices::clamp): Change input type
from int to HOST_WIDE_INT.

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

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

7 years agoImprove IPA-CP handling of self-recursive calls
jamborm [Wed, 11 Apr 2018 13:30:53 +0000 (13:30 +0000)] 
Improve IPA-CP handling of self-recursive calls

2018-04-11  Martin Jambor  <mjambor@suse.cz>

PR ipa/84149
* ipa-cp.c (propagate_vals_across_pass_through): Expand comment.
(cgraph_edge_brings_value_p): New parameter dest_val, check if it is
not the same as the source val.
(cgraph_edge_brings_value_p): New parameter.
(gather_edges_for_value): Pass destination value to
cgraph_edge_brings_value_p.
(perhaps_add_new_callers): Likewise.
(get_info_about_necessary_edges): Likewise and exclude values brought
only by self-recursive edges.
(create_specialized_node): Redirect only clones of self-calling edges.
(+self_recursive_pass_through_p): New function.
(find_more_scalar_values_for_callers_subset): Use it.
(find_aggregate_values_for_callers_subset): Likewise.
(known_aggs_to_agg_replacement_list): Removed.
(decide_whether_version_node): Re-calculate known constants for all
remaining context clones.

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

7 years ago PR c++/85032
mpolacek [Wed, 11 Apr 2018 13:10:16 +0000 (13:10 +0000)] 
PR c++/85032
* constexpr.c (potential_constant_expression_1): Consider conversions
from classes to literal types potentially constant.

* g++.dg/cpp0x/pr51225.C: Adjust error message.
* g++.dg/cpp1z/constexpr-if21.C: New test.

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

7 years ago2018-04-11 Richard Biener <rguenther@suse.de>
rguenth [Wed, 11 Apr 2018 13:05:35 +0000 (13:05 +0000)] 
2018-04-11  Richard Biener  <rguenther@suse.de>

PR lto/85339
* dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute
from early DWARF output.
(dwarf2out_early_finish): Output line info unconditionally into
early DWARF and add reference to it.

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

7 years ago PR target/85281
jakub [Wed, 11 Apr 2018 11:37:01 +0000 (11:37 +0000)] 
PR target/85281
* config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases.
(<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes
other than V2DFmode using iptr mode attribute.
(<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute.

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

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

7 years agofix PR 84659 references in ChangeLog files
amonakov [Wed, 11 Apr 2018 10:48:42 +0000 (10:48 +0000)] 
fix PR 84659 references in ChangeLog files

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

7 years agosel-sched: run cleanup_cfg just before loop_optimizer_init (PR 84659)
amonakov [Wed, 11 Apr 2018 10:40:07 +0000 (10:40 +0000)] 
sel-sched: run cleanup_cfg just before loop_optimizer_init (PR 84659)

PR rtl-optimization/85659
* sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg.

testsuite/
* gcc.dg/pr84659.c: New test.

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

7 years agoClean up attribute value comparison in lto-symtab.c.
marxin [Wed, 11 Apr 2018 10:33:46 +0000 (10:33 +0000)] 
Clean up attribute value comparison in lto-symtab.c.

2018-04-11  Martin Liska  <mliska@suse.cz>

* lto-symtab.c (lto_symtab_merge_p): Use attribute_value_equal
function.

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

7 years ago PR debug/85302
jakub [Wed, 11 Apr 2018 10:22:36 +0000 (10:22 +0000)] 
PR debug/85302
* dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if
SIZEP is NULL.
(output_loc_list): Pass address of a dummy size variable even in the
locview handling loop.
(index_location_lists): Add comment on why skip_loc_list_entry can't
call size_of_locs.

* g++.dg/debug/dwarf2/pr85302.C: New test.

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

7 years ago[ARM] Fix PR85261: ICE with FPSCR setter builtin
thopre01 [Wed, 11 Apr 2018 10:07:25 +0000 (10:07 +0000)] 
[ARM] Fix PR85261: ICE with FPSCR setter builtin

Instruction pattern for setting the FPSCR expects the input value to be
in a register. However, __builtin_arm_set_fpscr expander does not ensure
that this is the case and as a result GCC ICEs when the builtin is
called with a constant literal.

This commit fixes the builtin to force the input value into a register.
It also remove the unneeded volatile in the existing fpscr test and
fixes the function prototype.

2018-04-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR target/85261
    * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
    into register.

    gcc/testsuite/
    PR target/85261
    * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
    into register.

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

7 years agoUpdate libstdc++ manual in preparation for GCC 8 release
redi [Wed, 11 Apr 2018 00:21:35 +0000 (00:21 +0000)] 
Update libstdc++ manual in preparation for GCC 8 release

* doc/xml/manual/abi.xml: Document header locations in recent
releases.
* doc/xml/manual/evolution.xml: Add API changes since GCC 5.
* doc/xml/manual/spine.xml: Update copyright years.
* doc/xml/manual/strings.xml: Adjust tolower example to avoid
undefined behaviour.
* doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests.
* doc/html/*: Regenerate.

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

7 years agoDaily bump.
gccadmin [Wed, 11 Apr 2018 00:16:14 +0000 (00:16 +0000)] 
Daily bump.

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

7 years ago/cp
paolo [Tue, 10 Apr 2018 22:34:06 +0000 (22:34 +0000)] 
/cp
2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70808
* init.c (build_zero_init_1): Handle NULLPTR_TYPE_P being true of
the type like TYPE_PTR_OR_PTRMEM_P.

/testsuite
2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70808
* g++.dg/warn/Wzero-as-null-pointer-constant-7.C: New.

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

7 years ago2018-04-10 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Tue, 10 Apr 2018 22:05:41 +0000 (22:05 +0000)] 
2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>

PR target/85321
* doc/invoke.texi (RS/6000 and PowerPC Options): Document options
-mblock-compare-inline-limit, -mblock-compare-inline-loop-limit,
and -mstring-compare-inline-limit.

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

7 years ago2018-04-10 Aaron Sawdey <acsawdey@linux.ibm.com>
acsawdey [Tue, 10 Apr 2018 21:57:12 +0000 (21:57 +0000)] 
2018-04-10  Aaron Sawdey  <acsawdey@linux.ibm.com>

* MAINTAINERS: Update my email address.

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

7 years agoforgot the PR marker in the changelog
segher [Tue, 10 Apr 2018 21:38:31 +0000 (21:38 +0000)] 
forgot the PR marker in the changelog

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

7 years agors6000: Fix stack clash for big residuals (PR85287)
segher [Tue, 10 Apr 2018 21:37:34 +0000 (21:37 +0000)] 
rs6000: Fix stack clash for big residuals (PR85287)

The stack clash protection code had a logic error in how it decided
whether to put the final update size in a register, or to emit it
directly in an insn.  This fixes it.  It also tidies some surrounding
code.

PR target/85287
* gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size
for stack clash protection in a register whenever we need it to be in
a register.

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

7 years agors6000: Enable -fasynchronous-unwind-tables by default
segher [Tue, 10 Apr 2018 21:09:30 +0000 (21:09 +0000)] 
rs6000: Enable -fasynchronous-unwind-tables by default

To find out where on-entry register values live at any point in a
program, GDB currently tries to parse to parse the executable code.
This does not work very well, for example it gets confused if some
accesses to the stack use the frame pointer (r31) and some use the
stack pointer (r1).  A symptom is that backtraces can be cut short.

This patch enables -fasynchronous-unwind-tables by default for rs6000,
which causes us to emit DWARF unwind tables for all functions, solving
these problems.

This not do anything for sub-targets without DWARF, and only for ELF
sub-targets for now.

It increases executable size, but only modestly, and does not change
memory use, only the disk image.

* common/config/rs6000/rs6000-common.c (rs6000_option_init_struct):
Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF.

gcc/testsuite/
* gcc.target/powerpc/dfmode_off.c: Add -fno-asynchronous-unwind-tables.
* gcc.target/powerpc/dimode_off.c: Ditto.
* gcc.target/powerpc/tfmode_off.c: Ditto.
* gcc.target/powerpc/timode_off.c: Ditto.

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

7 years agors6000: Improve --help=target (PR85321)
segher [Tue, 10 Apr 2018 18:54:08 +0000 (18:54 +0000)] 
rs6000: Improve --help=target (PR85321)

This updates the help text for some options to mention the allowed
values for -mXX=XX.

PR target/85321
* config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in
the help text.
(mlong-double-): Ditto.
* config/rs6000/sysv4.opt (msdata=): Ditto.
(mtls-size=): Ditto.

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

7 years agogcc/ChangeLog:
kelvin [Tue, 10 Apr 2018 17:59:52 +0000 (17:59 +0000)] 
gcc/ChangeLog:

2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
erroneous entries for
"vector int vec_ldl (int, long int *)", and
"vector unsigned int vec_ldl (int, unsigned long int *)".
Add comments and entries for
"vector bool char vec_ldl (int, bool char *)",
"vector bool short vec_ldl (int, bool short *)",
"vector bool int vec_ldl (int, bool int *)",
"vector bool long long vec_ldl (int, bool long long *)",
"vector pixel vec_ldl (int, pixel *)",
"vector long long vec_ldl (int, long long *)",
"vector unsigned long long vec_ldl (int, unsigned long long *)".
* config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new
type tree bool_long_long_type_node and correct definition of
bool_V2DI_type_node to make reference to this new type tree.
(rs6000_mangle_type): Replace erroneous reference to
bool_long_type_node with bool_long_long_type_node.
* config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add
comments to emphasize sign distinctions for char and int types and
replace RS6000_BTI_bool_long constant with
RS6000_BTI_bool_long_long constant.  Also add comment to restrict
use of RS6000_BTI_pixel.
(bool_long_type_node): Remove this macro definition.
(bool_long_long_type_node): New macro definition

gcc/testsuite/ChangeLog:

2018-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/vec-ldl-1.c: New test.
* gcc.dg/vmx/ops-long-1.c: Correct test programs to reflect
corrections to ABI implementation.

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

7 years ago PR debug/65821 - wrong location for main().
jason [Tue, 10 Apr 2018 17:19:09 +0000 (17:19 +0000)] 
PR debug/65821 - wrong location for main().

* call.c (clear_location_r, convert_default_arg): Revert.
* tree.c (break_out_target_exprs): Add clear_location parm.
(struct bot_data): New.
(bot_manip): Clear location if requested.
* init.c (get_nsdmi): Pass clear_location.

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

7 years ago[PR target/85056] Address -Wmaybe-uninitialized diagnostic
tschwinge [Tue, 10 Apr 2018 16:55:02 +0000 (16:55 +0000)] 
[PR target/85056] Address -Wmaybe-uninitialized diagnostic

gcc/testsuite/
* gcc.target/nvptx/pr85056.c (main): Initialize "sum".

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

7 years agogcc/ChangeLog:
msebor [Tue, 10 Apr 2018 15:49:59 +0000 (15:49 +0000)] 
gcc/ChangeLog:

* doc/cppopts.texi: Use "side effect" instead of side-effect.
* doc/extend.texi: Same.
* doc/generic.texi: Same.
* doc/implement-c.texi: Same.
* doc/invoke.texi: Same.
* doc/md.texi: Same.
* doc/rtl.texi: Same.
* doc/tree-ssa.texi: Same.

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

7 years agoUpdate links to archived copy of SGI STL docs
redi [Tue, 10 Apr 2018 15:49:26 +0000 (15:49 +0000)] 
Update links to archived copy of SGI STL docs

* doc/xml/faq.xml: Update links to archived copy of SGI STL docs.
* doc/xml/manual/backwards_compatibility.xml: Likewise.
* doc/xml/manual/containers.xml: Likewise.
* doc/xml/manual/debug_mode.xml: Likewise.
* doc/xml/manual/extensions.xml: Likewise.
* doc/xml/manual/policy_data_structures_biblio.xml: Likewise.
* doc/xml/manual/using.xml: Likewise.
* doc/xml/manual/utilities.xml: Likewise.

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

7 years ago PR rtl-optimization/85300
jakub [Tue, 10 Apr 2018 15:31:57 +0000 (15:31 +0000)] 
PR rtl-optimization/85300
* combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
simplify_unary_operation fails.

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

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

7 years agogdbhooks: Add new pretty-printers for: varpool_node, symtab_node, cgraph_edge and...
marxin [Tue, 10 Apr 2018 14:43:09 +0000 (14:43 +0000)] 
gdbhooks: Add new pretty-printers for: varpool_node, symtab_node, cgraph_edge and ipa_ref.

2018-04-10  Martin Liska  <mliska@suse.cz>

* gdbhooks.py: Add pretty-printers for varpool_node, symtab_node,
cgraph_edge and ipa_ref.

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

7 years agoShow pertinent parameter (PR c++/85110)
dmalcolm [Tue, 10 Apr 2018 14:37:09 +0000 (14:37 +0000)] 
Show pertinent parameter (PR c++/85110)

gcc/cp/ChangeLog:
PR c++/85110
* call.c (get_fndecl_argument_location): Make non-static.
* cp-tree.h (get_fndecl_argument_location): New decl.
* typeck.c (convert_for_assignment): When complaining due to
conversions for an argument, show the location of the parameter
within the decl.

gcc/testsuite/ChangeLog:
PR c++/85110
* g++.dg/cpp1z/direct-enum-init1.C: Update for the cases
where we now show the pertinent parameter.
* g++.dg/diagnostic/aka2.C: Likewise.
* g++.dg/diagnostic/param-type-mismatch-2.C: Likewise.

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

7 years agoPR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios::failure
redi [Tue, 10 Apr 2018 14:36:09 +0000 (14:36 +0000)] 
PR libstdc++/85222 allow catching iostream errors as gcc4-compatible ios::failure

Define a new exception type derived from std::ios::failure[abi:cxx11]
which also aggregates an object of the gcc4-compatible ios::failure
type. Make __throw_ios_failure throw this new type for iostream errors
that raise exceptions. Provide custom type info for the new type so that
it can be caught by handlers for the gcc4-compatible ios::failure type
as well as handlers for ios::failure[abi:cxx11] and its bases.

PR libstdc++/85222
* src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for
cxx11-ios_failure.cc to rewrite type info for __ios_failure.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info):
New types.
[_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
* src/c++11/ios.cc (__throw_ios_failure): Remove definition.
* src/c++98/ios_failure.cc (__construct_ios_failure)
(__destroy_ios_failure, is_ios_failure_handler): New functions.
[!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here.
* testsuite/27_io/ios_base/failure/dual_abi.cc: New.
* testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to
handler types, to always catch std::ios_base::failure.
* testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/char/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/
exceptions_failbit.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/extractors_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise.
* testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/char/
exceptions_null.cc: Likewise.
* testsuite/27_io/basic_ostream/inserters_other/wchar_t/
exceptions_null.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.

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

7 years ago PR c++/85312 - P0962 cleanup
jakub [Tue, 10 Apr 2018 14:28:54 +0000 (14:28 +0000)] 
PR c++/85312 - P0962 cleanup
* parser.c (cp_parser_perform_range_for_lookup): Remove unreachable
diagnostics.

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

7 years ago PR debug/65821 - wrong location for main().
jason [Tue, 10 Apr 2018 14:24:00 +0000 (14:24 +0000)] 
PR debug/65821 - wrong location for main().

* call.c (clear_location_r): New.
(convert_default_arg): Use it.
* tree.c (bot_manip): Remove builtin_LINE/FILE handling.

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

7 years ago PR c++/85285 - ICE with flexible array after substitution.
jason [Tue, 10 Apr 2018 14:23:54 +0000 (14:23 +0000)] 
PR c++/85285 - ICE with flexible array after substitution.

* pt.c (instantiate_class_template_1): Check for flexible array in
union.

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

7 years ago * parser.c (cp_parser_check_template_parameters): Improve comment.
jason [Tue, 10 Apr 2018 14:23:49 +0000 (14:23 +0000)] 
* parser.c (cp_parser_check_template_parameters): Improve comment.

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

7 years ago PR fortran/85313
jakub [Tue, 10 Apr 2018 14:04:37 +0000 (14:04 +0000)] 
PR fortran/85313
* openmp.c (resolve_omp_do): Remove bogus if (j < i) break;.
(resolve_oacc_nested_loops): Likewise.  Formatting fix.

* gfortran.dg/gomp/pr85313.f90: New test.

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

7 years agoFix obvious error in handling of error attribute (PR lto/85248).
marxin [Tue, 10 Apr 2018 13:52:23 +0000 (13:52 +0000)] 
Fix obvious error in handling of error attribute (PR lto/85248).

2018-04-10  Martin Liska  <mliska@suse.cz>

PR lto/85248
* lto-symtab.c (lto_symtab_merge_p): Do not check for
TREE_VALUES of error attributes.

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

7 years ago2018-04-10 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 10 Apr 2018 13:40:35 +0000 (13:40 +0000)] 
2018-04-10  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/24314
* g++.dg/parse/template29.C: New.

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

7 years ago gcc/testsuite
amker [Tue, 10 Apr 2018 13:11:40 +0000 (13:11 +0000)] 
gcc/testsuite
PR testsuite/85190
* gcc.dg/vect/pr81196.c: Adjust pointer for aligned access.

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

7 years ago PR target/85177
jakub [Tue, 10 Apr 2018 12:37:36 +0000 (12:37 +0000)] 
PR target/85177
PR target/85255
* config/i386/sse.md
(<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix
computation of the VEC_MERGE selector from mask.
(<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>):
Fix decoding of the VEC_MERGE selector into mask.

* gcc.target/i386/avx512f-pr85177.c: New test.
* gcc.target/i386/avx512f-pr85255.c: New test.

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

7 years agoAdd missing cases to vect_get_smallest_scalar_type (PR 85286)
rsandifo [Tue, 10 Apr 2018 10:28:33 +0000 (10:28 +0000)] 
Add missing cases to vect_get_smallest_scalar_type (PR 85286)

In this PR we used WIDEN_SUM_EXPR to vectorise:

  short i, y;
  int sum;
  [...]
  for (i = x; i > 0; i--)
    sum += y;

with 4 ints and 8 shorts per vector.  The problem was that we set
the VF based only on the ints, then calculated the number of vector
copies based on the shorts, giving 4/8.  Previously that led to
ncopies==0, but after r249897 we pick it up as an ICE.

In this particular case we could vectorise the reduction by setting
ncopies based on the output type rather than the input type, but it
doesn't seem worth adding a special "optimisation" for such a
pathological case.  I think it's really an instance of the more general
problem that we can't vectorise using combinations of (say) 64-bit and
128-bit vectors on targets that support both.

2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR tree-optimization/85286
* tree-vect-data-refs.c (vect_get_smallest_scalar_type):

gcc/testsuite/
PR tree-optimization/85286
* gcc.dg/vect/pr85286.c: New test.

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

7 years agoSet insn_last_address in final_1
rsandifo [Tue, 10 Apr 2018 10:28:05 +0000 (10:28 +0000)] 
Set insn_last_address in final_1

final_1 already sets insn_current_address for each instruction, making
it possible to use some of the address functions in final.c during
assembly generation.  This patch also sets insn_last_address, since
as the comment says, we can treat final as a shorten_branches pass that
does nothing.  It's then possible to use insn_current_reference_address
during final as well.

This is needed for the aarch64.md definitions of far_branch to work:

   (set (attr "far_branch")
(if_then_else (and (ge (minus (match_dup 2) (pc)) (const_int -1048576))
   (lt (minus (match_dup 2) (pc)) (const_int 1048572)))
      (const_int 0)
      (const_int 1)))]

This value (tested only during final) uses the difference between
the INSN_ADDRESSES of operand 2 and insn_current_reference_address
to calculate a conservatively-correct estimate of the branch distance.
It takes into account the worst-case gap due to alignment, whereas
a direct comparison of INSN_ADDRESSES would give an unreliable,
optimistic result.

2018-04-10  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* final.c (final_1): Set insn_last_address as well as
insn_current_address.

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

7 years ago[explow] PR target/85173: validize memory before passing it on to target probe_stack
ktkachov [Tue, 10 Apr 2018 09:58:57 +0000 (09:58 +0000)] 
[explow] PR target/85173: validize memory before passing it on to target probe_stack

In this PR the expansion code emits an invalid memory address for the stack probe, which the backend fails to recognise.
The address is created explicitly in anti_adjust_stack_and_probe_stack_clash in explow.c and passed down to gen_probe_stack
without any validation in emit_stack_probe.

This patch fixes the ICE by calling validize_mem on the memory location before passing it down to the target.
Jakub pointed out that we also want to create valid addresses for the probe_stack_address case, so this patch
creates an expand operand and legitimizes it before passing it down to the probe_stack_address expander.

This patch passes bootstrap and testing on arm-none-linux-gnueabihf and aarch64-none-linux-gnu
and ppc64le-redhat-linux on gcc112 in the compile farm.

PR target/85173
* explow.c (emit_stack_probe): Call validize_mem on memory location
before passing it to gen_probe_stack.  Create address operand and
legitimize it for the probe_stack_address case.

* gcc.target/arm/pr85173.c: New test.

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

7 years agoBe more carefull about DECL merging in LTO (PR lto/85248).
marxin [Tue, 10 Apr 2018 07:24:59 +0000 (07:24 +0000)] 
Be more carefull about DECL merging in LTO (PR lto/85248).

2018-04-10  Richard Biener  <rguenther@suse.de>
    Martin Liska  <mliska@suse.cz>

PR lto/85248
* lto-symtab.c (lto_symtab_merge_p): Handle noreturn attribute.
2018-04-10  Jakub Jelinek  <jakub@redhat.com>

PR lto/85248
* gcc.dg/lto/pr85248_0.c: New test.
* gcc.dg/lto/pr85248_1.c: New test.

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

7 years ago PR lto/85078
hubicka [Tue, 10 Apr 2018 06:33:38 +0000 (06:33 +0000)] 
PR lto/85078
* ipa-devirt.c (rebuild_type_inheritance-hash): New.
* ipa-utils.h (rebuild_type_inheritance-hash): Declare.
* tree.c (free_lang_data_in_type): Fix handling of binfos;
walk basetypes.
(free_lang_data): Rebuild type inheritance graph.
* g++.dg/torture/pr85078.C: New.

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

7 years agoDaily bump.
gccadmin [Tue, 10 Apr 2018 00:16:21 +0000 (00:16 +0000)] 
Daily bump.

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

7 years ago/cp
paolo [Mon, 9 Apr 2018 22:33:35 +0000 (22:33 +0000)] 
/cp
2018-04-09  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85227
* decl.c (cp_finish_decomp): In a template, if the type is incomplete
issue a pedwarn and defer trying to do bindings.

/testsuite
2018-04-09  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85227
* g++.dg/cpp1z/decomp44.C: New.
* g++.dg/cpp1z/decomp45.C: Likewise.

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

7 years ago2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Mon, 9 Apr 2018 21:52:05 +0000 (21:52 +0000)] 
2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/83064
* trans-stmt.c (gfc_trans_forall_loop): Remove annotation for
parallell processing of DO CONCURRENT -ftree-parallelize-loops
is set.

2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/83064
* gfortran.dg/do_concurrent_5.f90: New test.
* gfortran.dg/vect/vect-do-concurrent-1.f90: Adjust dg-bogus
message.

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

7 years ago PR c++/85279 - dump_expr doesn't understand decltype.
jason [Mon, 9 Apr 2018 21:16:05 +0000 (21:16 +0000)] 
PR c++/85279 - dump_expr doesn't understand decltype.

* error.c (dump_expr): Handle DECLTYPE_TYPE.

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

7 years ago2018-04-09 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Mon, 9 Apr 2018 21:05:13 +0000 (21:05 +0000)] 
2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/51260
* resolve.c (resolve_variable): Simplify cases where access to a
parameter array results in a single constant.

2018-04-09  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/51260
* gfortran.dg/parameter_array_element_3.f90: New test.

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

7 years ago PR c++/85262 - ICE with redundant qualification on constructor.
jason [Mon, 9 Apr 2018 20:53:31 +0000 (20:53 +0000)] 
PR c++/85262 - ICE with redundant qualification on constructor.

* call.c (build_new_method_call_1): Move make_args_non_dependent
after A::A() handling.

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

7 years ago PR c++/85277 - ICE with invalid offsetof.
jason [Mon, 9 Apr 2018 20:40:06 +0000 (20:40 +0000)] 
PR c++/85277 - ICE with invalid offsetof.

* semantics.c (finish_offsetof): Avoid passing non-DECL to %qD.
Adjust -Winvalid-offsetof diagnostic to say conditionally supported.

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

7 years ago PR c++/85264 - ICE with excess template-parameter-list.
jason [Mon, 9 Apr 2018 19:50:03 +0000 (19:50 +0000)] 
PR c++/85264 - ICE with excess template-parameter-list.

* parser.c (cp_parser_check_template_parameters): Add template_id_p
parameter.  Don't allow an extra template header if true.
(cp_parser_class_head): Pass template_id_p.
(cp_parser_elaborated_type_specifier): Likewise.
(cp_parser_alias_declaration): Likewise.
(cp_parser_check_declarator_template_parameters): Likewise.

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

7 years ago PR c++/85194
jakub [Mon, 9 Apr 2018 19:48:48 +0000 (19:48 +0000)] 
PR c++/85194
* parser.c (cp_parser_simple_declaration): For structured bindings,
if *maybe_range_for_decl is NULL after parsing it, set it to
error_mark_node.

* g++.dg/cpp1z/decomp43.C: New test.

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

7 years agogcc/doc/ChangeLog:
msebor [Mon, 9 Apr 2018 19:01:04 +0000 (19:01 +0000)] 
gcc/doc/ChangeLog:

* invoke.texi (-finline-small-functions): Mention other optimization
options.
(-findirect-inlining, -fpartial-inlining): Same.
(-finline-functions-called-once): Same.
(-freorder-blocks-and-partition): Same.

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

7 years ago PR rtl-optimization/80463
jakub [Mon, 9 Apr 2018 18:21:03 +0000 (18:21 +0000)] 
PR rtl-optimization/80463
* g++.dg/pr80463.C: Add -w to dg-options.

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

7 years ago PR rtl/84058
hubicka [Mon, 9 Apr 2018 16:33:51 +0000 (16:33 +0000)] 
PR rtl/84058
* cfgcleanup.c (try_forward_edges): Do not give up on crossing
jumps; choose last target that matches the criteria (i.e.
no partition changes for non-crossing jumps).
* cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic
support for redirecting crossing jumps to non-crossing.

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

7 years ago PR c++/85256 - ICE capturing pointer to VLA.
jason [Mon, 9 Apr 2018 15:32:05 +0000 (15:32 +0000)] 
PR c++/85256 - ICE capturing pointer to VLA.

* lambda.c (add_capture): Distinguish between variable-size and
variably-modified types.

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

7 years ago * g++.dg/opt/pr85196.C: Fix for -std=c++17.
jason [Mon, 9 Apr 2018 15:31:59 +0000 (15:31 +0000)] 
* g++.dg/opt/pr85196.C: Fix for -std=c++17.

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

7 years ago[ARC] Fix stack usage info for naked functions.
claziss [Mon, 9 Apr 2018 15:05:30 +0000 (15:05 +0000)] 
[ARC] Fix stack usage info for naked functions.

gcc/
2018-04-09  Alexey Brodkin <abrodkin@synopsys.com>

* config/arc/arc.c (arc_expand_prologue): Set stack usage info
also for naked functions.

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

7 years ago[ARC] Add/update combiner patterns.
claziss [Mon, 9 Apr 2018 15:05:19 +0000 (15:05 +0000)] 
[ARC] Add/update combiner patterns.

gcc/
2018-01-26  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.md (add_shift): New pattern.
(add_shift2): Likewise.
(sub_shift): Likewise.
(sub_shift_cmp0_noout): Likewise.
(compare_si_ashiftsi): Likewise.
(xbfu_cmp0_noout): New combine pattern.
(xbfu_cmp0"): Likewise.
(movsi_set_cc_insn): Place the predicable variant first.
(commutative_binary_cmp0_noout): Remove clobber.
(commutative_binary_cmp0): New pattern.
(noncommutative_binary_cmp0): Likewise.
(noncommutative_binary_cmp0_noout): Likewise.
(noncommutative_binary_comparison_result_used): Removed.
(rsub_cmp0): New pattern.
(rsub_cmp0_noout): Likewise.
(extzvsi): Changed, keep only meaningful variants.
(SQH, SEZ): New iterators.
(SQH_postfix): New mode attribute.
(SEZ_prefix): New code attribute.
(<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern.
(<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise.
* config/arc/predicates.md (cc_set_register): Use CC_REG instead
of numerical value.
(noncommutative_operator): Check the availability of barrel
shifter option.

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

7 years ago2018-04-09 Richard Biener <rguenther@suse.de>
rguenth [Mon, 9 Apr 2018 13:27:33 +0000 (13:27 +0000)] 
2018-04-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/85284
* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
Only use the niter constraining form of simple_iv when the exit
is always executed.

* gcc.dg/torture/pr85284.c: New testcase.

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

7 years ago[nvptx] Add memory_barrier insn
vries [Mon, 9 Apr 2018 13:22:00 +0000 (13:22 +0000)] 
[nvptx] Add memory_barrier insn

2018-04-09  Tom de Vries  <tom@codesourcery.com>

PR target/84041
* config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR.
(define_expand "*memory_barrier"): New define_expand.
(define_insn "memory_barrier"): New insn.

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

7 years ago PR rtl-optimization/80463
abel [Mon, 9 Apr 2018 10:19:50 +0000 (10:19 +0000)] 
   PR rtl-optimization/80463
       PR rtl-optimization/83972
       PR rtl-optimization/83480

       * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the
       correct producer for the insn.
       (tidy_control_flow): Fixup seqnos in case of debug insns.

       * gcc.dg/pr80463.c: New test.
       * g++.dg/pr80463.C: Likewise.
       * gcc.dg/pr83972.c: Likewise.

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

7 years ago PR rtl-optimization/83913
abel [Mon, 9 Apr 2018 09:42:25 +0000 (09:42 +0000)] 
   PR rtl-optimization/83913

       * sel-sched-ir.c (merge_expr_data): Choose the middle between two
       different sched-times when merging exprs.

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

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

7 years ago PR rtl-optimization/83962
abel [Mon, 9 Apr 2018 09:16:34 +0000 (09:16 +0000)] 
   PR rtl-optimization/83962

       * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call
       tidy_fallthru_edge and tidy_control_flow.

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

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

7 years ago PR rtl-optimization/83530
abel [Mon, 9 Apr 2018 09:08:28 +0000 (09:08 +0000)] 
   PR rtl-optimization/83530

       * sel-sched.c (force_next_insn): New global variable.
       (remove_insn_for_debug): When force_next_insn is true, also leave only
       next insn in the ready list.
       (sel_sched_region): When the region wasn't scheduled, make another pass
       over it with force_next_insn set to 1.

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

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

7 years agoDaily bump.
gccadmin [Mon, 9 Apr 2018 00:16:27 +0000 (00:16 +0000)] 
Daily bump.

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

7 years agogcc/ChangeLog:
msebor [Sun, 8 Apr 2018 16:14:31 +0000 (16:14 +0000)] 
gcc/ChangeLog:

* invoke.texi (-Wrestrict, -fprintf-return-value): Tweak text.

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

7 years ago[NDS32] Add intrinsic functions for interrupt control.
jasonwucj [Sun, 8 Apr 2018 14:28:44 +0000 (14:28 +0000)] 
[NDS32] Add intrinsic functions for interrupt control.

gcc/
* config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h
into tm_file.
* config/nds32/constants.md (unspec_volatile_element): Add enum values
for interrupt control.
* config/nds32/nds32-intrinsic.c: Implementation of intrinsic
functions for interrupt control.
* config/nds32/nds32-intrinsic.md: Likewise.
* config/nds32/nds32_intrinsic.h: Likewise.
* config/nds32/nds32.h (nds32_builtins): Likewise.

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