Arnaud Charlet [Tue, 25 Apr 2017 08:33:18 +0000 (10:33 +0200)]
[multiple changes]
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* sem_aggr.adb, inline.adb, einfo.adb, einfo.ads, scng.adb,
sem_prag.adb: Minor reformatting.
2017-04-25 Bob Duff <duff@adacore.com>
* sem_attr.adb (Type_Key): Add code in the
recursive Compute_Type_Key to protect against fetching the source
code for Standard, in case a component of the type is declared
in Standard. There was already code to do this for the original
type, but not for its components.
From-SVN: r247147
Arnaud Charlet [Tue, 25 Apr 2017 08:29:46 +0000 (10:29 +0200)]
[multiple changes]
2017-04-25 Javier Miranda <miranda@adacore.com>
* exp_ch3.adb (Build_Initialization_Call): Handle
subtypes of private types when searching for the underlying full
view of a private type.
2017-04-25 Javier Miranda <miranda@adacore.com>
* sem_res.adb (Set_Mixed_Mode_Operand): A universal
real conditional expression can appear in a fixed-type context
and must be resolved with that context to facilitate the code
generation to the backend.
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* einfo.adb, einfo.ads (Body_Needed_For_Inlining): New flag,
to indicate whether during inline processing, when some unit U1
appears in the context of a unit U2 compiled for instantiation
or inlining purposes, the body of U1 needs to be compiled as well.
* sem_prag.adb (Process_Inline): Set Body_Needed_For_Inlining if
context is a package declaration.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration,
Analyze_Generic_Package_Declaration): ditto.
* inline.adb (Analyze_Inlined_Bodies): Check
Body_Needed_For_Inlining.
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* par.adb (Current_Assign_Node): Global variable use to record
the presence of a target_name in the right hand side of the
assignment being parsed.
* par-ch4.adb (P_Name): If the name is a target_name, mark the
enclosing assignment node accordingly.
* par-ch5.adb (P_Assignment_Statement): Set Current_Assign_Node
appropriately.
* sem_ch5.adb (Analyze_Assignment): Disable expansion before
analyzing RHS if the statement has target_names.
* sem_aggr.adb (Resolve_Iterated_Component_Association): Handle
properly choices that are subtype marks.
* exp_ch5.adb: Code cleanup.
2017-04-25 Bob Duff <duff@adacore.com>
* s-memory.adb: Add a comment regarding efficiency.
* atree.adb: Fix the assertion, and combine 2 assertions into one,
"the source has an extension if and only if the destination does."
* sem_ch3.adb, sem_ch13.adb: Address ??? comments.
2017-04-25 Arnaud Charlet <charlet@adacore.com trojanek>
* a-tasatt.adb (Set_Value): Fix handling of 32bits -> 64bits
conversion.
2017-04-25 Doug Rupp <rupp@adacore.com>
* init.c (__gnat_error_handler) [vxworks]: Turn on sigtramp
handling for ppc64-vx7.
* sigtramp-vxworks-target.inc
[SIGTRAMP_BODY]: Add section for ppc64-vx7.
From-SVN: r247146
Arnaud Charlet [Tue, 25 Apr 2017 08:25:29 +0000 (08:25 +0000)]
New file.
From-SVN: r247145
Bob Duff [Tue, 25 Apr 2017 08:23:06 +0000 (08:23 +0000)]
uintp.adb (Most_Sig_2_Digits): In case Direct (Right)...
2017-04-25 Bob Duff <duff@adacore.com>
* uintp.adb (Most_Sig_2_Digits): In case Direct (Right), fetch
Direct_Val (Right), instead of the incorrect Direct_Val (Left).
(UI_GCD): Remove ??? comment involving possible efficiency
improvements. This just isn't important after all these years.
Also minor cleanup.
* uintp.ads: Minor cleanup.
From-SVN: r247144
Hristian Kirtchev [Tue, 25 Apr 2017 08:21:44 +0000 (08:21 +0000)]
exp_util.adb, [...]: Revert previous changes.
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb, exp_util.ads, sem_ch7.adb, sem_prag.adb, exp_ch3.adb:
Revert previous changes.
* scng.adb: Minor reformatting.
* s-stratt.ads: Fix unbalanced parens in comment.
From-SVN: r247143
Arnaud Charlet [Tue, 25 Apr 2017 08:19:33 +0000 (10:19 +0200)]
[multiple changes]
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb, exp_util.adb, sem_prag.adb, freeze.adb, sem_util.adb:
Minor reformatting.
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* scng.adb (Scan): Handle '@' appropriately.
* sem_ch5.adb: Code cleanup.
From-SVN: r247142
Arnaud Charlet [Tue, 25 Apr 2017 08:12:31 +0000 (10:12 +0200)]
[multiple changes]
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Check_Expression_Function): Do not check for the
use of deferred constants if the freezing of the expression
function is triggered by its generated body, rather than a
premature use.
2017-04-25 Javier Miranda <miranda@adacore.com>
* exp_attr.adb (Rewrite_Stream_Proc_Call): Handle
subtypes of private types when performing the view conversion.
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch3.adb (Freeze_Type): Signal the DIC body is created for
the purposes of freezing.
* exp_util.adb Update the documentation and structure of the
type map used in class-wide semantics of assertion expressions.
(Add_Inherited_Tagged_DIC): There is really no need to preanalyze
and resolve the triaged expression because all substitutions
refer to the proper entities. Update the replacement of
references.
(Build_DIC_Procedure_Body): Add formal parameter
For_Freeze. Add local variable Build_Body. Inherited DIC pragmas
are now only processed when freezing occurs. Build a body only
when one is needed.
(Entity_Hash): Removed.
(Map_Types): New routine.
(Replace_Object_And_Primitive_References): Removed.
(Replace_References): New routine.
(Replace_Type_References): Moved to the library level of Exp_Util.
(Type_Map_Hash): New routine.
(Update_Primitives_Mapping): Update the mapping call.
(Update_Primitives_Mapping_Of_Types): Removed.
* exp_util.ads (Build_DIC_Procedure_Body): Add formal
parameter For_Freeze and update the comment on usage.
(Map_Types): New routine.
(Replace_References): New routine.
(Replace_Type_References): Moved to the library level of Exp_Util.
(Update_Primitives_Mapping_Of_Types): Removed.
* sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC
properties of the private type to the full view in case the full
view derives from a parent type and inherits a DIC pragma.
* sem_prag.adb (Analyze_Pragma): Guard against a case where a
DIC pragma is placed at the top of a declarative region.
From-SVN: r247141
Arnaud Charlet [Tue, 25 Apr 2017 08:07:38 +0000 (10:07 +0200)]
[multiple changes]
2017-04-25 Tristan Gingold <gingold@adacore.com>
* s-mmap.ads (Data): Add pragma Inline.
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com>
* checks.adb (Insert_Valid_Check): Do not use
a renaming to alias a volatile name because this will lead to
multiple evaluations of the volatile name. Use a constant to
capture the value instead.
2017-04-25 Doug Rupp <rupp@adacore.com>
* init.c [VxWorks Section]: Disable sigtramp for ppc64-vx7.
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb, exp_util.ads (Build_Class_Wide_Expression):
Add out parameter to indicate to caller that a wrapper must
be constructed for an inherited primitive whose inherited
pre/postcondition has called to overridden primitives.
* freeze.adb (Check_Inherited_Conditions): Build wrapper body
for inherited primitive that requires it.
* sem_disp.adb (Check_Dispatching_Operation): Such wrappers are
legal primitive operations and belong to the list of bodies
generated after the freeze point of a type.
* sem_prag.adb (Build_Pragma_Check_Equivalent): Use new signature
of Build_Class_Wide_Expression.
* sem_util.adb, sem_util.ads (Build_Overriding_Spec): New procedure
to construct the specification of the wrapper subprogram created
for an inherited operation.
From-SVN: r247140
Arnaud Charlet [Tue, 25 Apr 2017 08:04:26 +0000 (10:04 +0200)]
[multiple changes]
2017-04-25 Bob Duff <duff@adacore.com>
* s-osinte-linux.ads (pthread_mutexattr_setprotocol,
pthread_mutexattr_setprioceiling): Add new interfaces for these
pthread operations.
* s-taprop-linux.adb (Initialize_Lock, Initialize_TCB): Set
protocols as appropriate for Locking_Policy 'C' and 'I'.
* s-taprop-posix.adb: Minor reformatting to make it more similar
to s-taprop-linux.adb.
2017-04-25 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Get_Discriminant_Value, Search_Derivation_Levels):
Handle properly a multi- level derivation involving both renamed
and constrained parent discriminants, when the type to be
constrained has fewer discriminants that the ultimate ancestor.
2017-04-25 Bob Duff <duff@adacore.com>
* sem_util.adb (Is_Object_Reference): In the
case of N_Explicit_Dereference, return False if it came from a
conditional expression.
2017-04-25 Bob Duff <duff@adacore.com>
* par-ch4.adb (P_Case_Expression): If a semicolon
is followed by "when", assume that ";" was meant to be ",".
From-SVN: r247139
Arnaud Charlet [Tue, 25 Apr 2017 07:58:18 +0000 (09:58 +0200)]
Minor reformatting.
From-SVN: r247138
Gary Dismukes [Tue, 25 Apr 2017 07:58:01 +0000 (07:58 +0000)]
sem_ch9.adb, [...]: Minor reformatting and typo fixes.
2017-04-25 Gary Dismukes <dismukes@adacore.com>
* sem_ch9.adb, sem_ch10.adb, sem_util.adb: Minor reformatting and typo
fixes.
From-SVN: r247137
Arnaud Charlet [Tue, 25 Apr 2017 07:56:05 +0000 (09:56 +0200)]
[multiple changes]
2017-04-25 Arnaud Charlet <charlet@adacore.com>
* rtsfind.ads (SPARK_Implicit_Load): New procedure for forced
loading of an entity.
* rtsfind.adb (SPARK_Implicit_Load): Body with a pattern
previously repeated in the analysis.
* sem_ch9.adb (Analyze_Protected_Type_Declaration): use new
procedure SPARK_Implicit_Load. (Analyze_Task_Type_Declaration):
use new procedure SPARK_Implicit_Load.
* sem_ch10.adb (Analyze_Compilation_Unit): Use new procedure
SPARK_Implicit_Load.
2017-04-25 Javier Miranda <miranda@adacore.com>
* sem_util.adb (New_Copy_Tree): By default
copying of defining identifiers is prohibited because
this would introduce an entirely new entity into the
tree. This patch introduces an exception to this general
rule: the declaration of constants and variables located in
Expression_With_Action nodes.
(Copy_Itype_With_Replacement): Renamed as Copy_Entity_With_Replacement.
(In_Map): New subprogram.
(Visit_Entity): New subprogram.
(Visit_Node): Handle EWA_Level,
EWA_Inner_Scope_Level, and take care of defining entities defined
in Expression_With_Action nodes.
2017-04-25 Thomas Quinot <quinot@adacore.com>
* exp_ch6.adb: minor comment edit.
* sinfo.ads, sinfo.adb: New Null_Statement attribute for null
procedure specifications that come from source.
* par-ch6.adb (P_Subprogram, case of a null procedure): Set new
Null_Statement attribute.
* par_sco.adb (Traverse_Declarations_Or_Statements): For a null
procedure, generate statement SCO for the generated NULL statement.
* sem_ch6.adb (Analyze_Null_Procedure): Use null statement from
parser, if available.
From-SVN: r247136
Andreas Krebbel [Tue, 25 Apr 2017 07:45:41 +0000 (07:45 +0000)]
Add missing changelog entries for last commit.
From-SVN: r247135
Andreas Krebbel [Tue, 25 Apr 2017 07:43:49 +0000 (07:43 +0000)]
S/390: PR80464: Split MEM->GPR vector moves
We do this already for TImode values but it was missing for vector
modes.
gcc/ChangeLog:
2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/80464
* config/s390/vector.md: Split MEM->GPR vector moves for
non-s_operand addresses.
gcc/testsuite/ChangeLog:
2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/80464
* gfortran.fortran-torture/compile/pr80464.f90: New test.
From-SVN: r247134
Andreas Krebbel [Tue, 25 Apr 2017 07:41:41 +0000 (07:41 +0000)]
S/390: PR79895: Fix TImode constant handling
The P constraint letter is supposed to match every constant which is
acceptable during reload. However, constraints do not appear to be
able to handle const_wide_int yet. It works with predicates so the
alternative is modelled with a new predicate now.
gcc/ChangeLog:
2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/79895
* config/s390/predicates.md (reload_const_wide_int_operand): New
predicate.
* config/s390/s390.md ("movti"): Remove d/P alternative.
("movti_bigconst"): New pattern definition.
gcc/testsuite/ChangeLog:
2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/79895
* gcc.target/s390/pr79895.c: New test.
From-SVN: r247133
Dominik Vogt [Tue, 25 Apr 2017 07:37:50 +0000 (07:37 +0000)]
S/390: PR80080: Optimize atomic patterns.
The attached patch optimizes the atomic_exchange and atomic_compare
patterns on s390 and s390x (mostly limited to SImode and DImode).
Among general optimizaation, the changes fix most of the problems
reported in PR 80080:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80080
gcc/ChangeLog:
2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
PR target/80080
* s390-protos.h (s390_expand_cs_hqi): Removed.
(s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
* config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
modes as well as CCZ1mode and CCZmode.
(s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
signature of s390_emit_compare_and_swap.
(s390_expand_cs_hqi): Likewise, make static.
(s390_expand_cs_tdsi): Generate an explicit compare before trying
compare-and-swap, in some cases.
(s390_expand_cs): Wrapper function.
(s390_expand_atomic_exchange_tdsi): New backend specific expander for
atomic_exchange.
(s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
* config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
patterns for small and large integers. Forbid symref memory operands.
Move expander to s390.c. Require cc register.
("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
symref memory operands. Remove CC mode and call s390_match_ccmode
instead.
("atomic_exchange<mode>"): Allow and implement all integer modes.
gcc/testsuite/ChangeLog:
2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
PR target/80080
* gcc.target/s390/md/atomic_compare_exchange-1.c: New test.
* gcc.target/s390/md/atomic_compare_exchange-1.inc: New test.
* gcc.target/s390/md/atomic_exchange-1.inc: New test.
From-SVN: r247132
Dominik Vogt [Tue, 25 Apr 2017 07:33:05 +0000 (07:33 +0000)]
S/390: Load and test peephole.
gcc/ChangeLog:
2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
* config/s390/s390.md (define_peephole2): New peephole to help
combining the load-and-test pattern with volatile memory.
From-SVN: r247131
Dominik Vogt [Tue, 25 Apr 2017 07:31:22 +0000 (07:31 +0000)]
S/390: Use load-on-condition in cstorecc4
gcc/ChangeLog:
2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
* config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
with CCZmode for TARGET_Z196.
From-SVN: r247130
Jakub Jelinek [Tue, 25 Apr 2017 07:28:43 +0000 (09:28 +0200)]
re PR rtl-optimization/80501 (Wrong code w/ a signed char, a shift, and a conversion to int)
PR rtl-optimization/80501
* combine.c (make_compound_operation_int): Set subreg_code to SET
even for AND with mask of the sign bit of mode.
* gcc.c-torture/execute/pr80501.c: New test.
From-SVN: r247128
Jakub Jelinek [Tue, 25 Apr 2017 07:27:01 +0000 (09:27 +0200)]
re PR rtl-optimization/80500 (ICE: internal consistency failure (error: invalid rtl sharing found in the insn))
PR rtl-optimization/80500
* loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
sum's initial value.
* gcc.dg/pr80500.c: New test.
From-SVN: r247126
Julian Brown [Tue, 25 Apr 2017 06:58:14 +0000 (06:58 +0000)]
thunderx2t99.md (thunderx2t99_crc): New Reservation.
* config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>
From-SVN: r247125
Julian Brown [Tue, 25 Apr 2017 06:55:50 +0000 (06:55 +0000)]
thunderx2t99.md (thunderx2t99_aes): New Reservation.
* config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
(thunderx2t99_sha): New Reservation.
Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>
From-SVN: r247124
Marc Glisse [Tue, 25 Apr 2017 06:51:44 +0000 (08:51 +0200)]
Let tree_single_nonzero_warnv_p use range information
2017-04-25 Marc Glisse <marc.glisse@inria.fr>
gcc/
* fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
gcc/testsuite/
* gcc.dg/tree-ssa/cmpmul-1.c: New file.
* gcc.dg/Wstrict-overflow-18.c: Xfail.
From-SVN: r247123
Julian Brown [Tue, 25 Apr 2017 06:45:49 +0000 (06:45 +0000)]
aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix type for 1-element load.
* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
type for 1-element load.
Co-Authored-By: Naveen H.S <Naveen.Hurugalawadi@cavium.com>
From-SVN: r247122
GCC Administrator [Tue, 25 Apr 2017 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247121
Janus Weil [Mon, 24 Apr 2017 20:44:14 +0000 (22:44 +0200)]
re PR fortran/80121 (Memory leak with derived-type intent(out) argument)
2017-04-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80121
* gfortran.dg/intent_out_9.f90: Remove deprecated cleanup-tree-dump
directive.
From-SVN: r247115
Joseph Myers [Mon, 24 Apr 2017 20:37:39 +0000 (21:37 +0100)]
Regenerate .pot files.
gcc/po:
* gcc.pot: Regenerate.
libcpp/po:
* cpplib.pot: Regenerate.
From-SVN: r247113
David Malcolm [Mon, 24 Apr 2017 20:33:04 +0000 (20:33 +0000)]
types.rst (gccjit::type::get_const): Remove comment.
gcc_jit_type_get_aligned
gcc/jit/ChangeLog:
* docs/cp/topics/types.rst (gccjit::type::get_const): Remove
comment.
(gccjit::type::get_aligned): Add.
* docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7.
* docs/topics/types.rst: Add gcc_jit_type_get_aligned.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (gcc::jit::playback::type::get_aligned): New
method.
* jit-playback.h (gcc::jit::playback::type::get_aligned): New
method.
* jit-recording.c: Within namespace gcc::jit::recording...
(type::get_aligned): New method.
(memento_of_get_aligned::replay_into): New method.
(memento_of_get_aligned::make_debug_string): New method.
(memento_of_get_aligned::write_reproducer): New method.
* jit-recording.h: Within namespace gcc::jit::recording...
(type::get_aligned): New method.
(type::accepts_writes_from): Strip off qualifications from
this when comparing pointer equality.
(decorated_type): New subclass of type, subsuming the
commonality between memento_of_get_const and
memento_of_get_volatile.
(memento_of_get_const): Make a subclass of decorated_type,
rather than type.
(memento_of_get_volatile): Likewise.
(memento_of_get_aligned): Likewise.
* libgccjit++.h: Within namespace gccjit...
(type::get_const): New method.
(type::get_aligned): New method.
* libgccjit.c (gcc_jit_type_get_aligned): New function.
* libgccjit.h (gcc_jit_type_get_aligned): New decl.
* libgccjit.map (LIBGCCJIT_ABI_7): New
(gcc_jit_type_get_aligned): Add.
gcc/testsuite/ChangeLog:
* jit.dg/all-non-failing-tests.h: Add test-alignment.c.
* jit.dg/test-alignment.c: New test case.
* jit.dg/test-alignment.cc: New test case.
* jit.dg/test-error-gcc_jit_type_get_aligned-non-power-of-two.c:
New test case.
From-SVN: r247111
Volker Reichelt [Mon, 24 Apr 2017 20:30:29 +0000 (20:30 +0000)]
decl.c (grokdeclarator): Use %qT instead of %<%T%> in
* decl.c (grokdeclarator): Use %qT instead of %<%T%> in
* diagnostics.
(start_enum): Likewise.
(build_enumerator): Likewise. Use %qE instead of plain %E.
* parser.c (cp_parser_mem_initializer_list): Use %qD instead of
%<%D%> in diagnostics.
(cp_parser_elaborated_type_specifier): Likewise.
* pt.c (make_pack_expansion): Use %qT and %qE instead of
%<%T%> and %<%E%> in diagnostics.
(tsubst_pack_expansion): Likewise.
From-SVN: r247110
David Malcolm [Mon, 24 Apr 2017 19:12:52 +0000 (19:12 +0000)]
Fix location of sizeof/alignof (PR c++/80016)
PR c++/80016 reports an issue with bizarre underlined range
for a complicated expression.
The root cause for the incorrect *starting* location of that range
is that alignof and sizeof expressions currently have
start == finish == caret at the opening parenthesis of the
expression.
This patch fixes this by generating appropriate start and finish
locations for alignof and sizeof expressions.
gcc/cp/ChangeLog:
PR c++/80016
* parser.c (cp_parser_unary_expression): Generate a location
range for alignof and sizeof expressions.
gcc/testsuite/ChangeLog:
PR c++/80016
* g++.dg/plugin/diagnostic-test-expressions-1.C (test_sizeof): New
test function.
(test_alignof): New test function.
From-SVN: r247108
Marc Glisse [Mon, 24 Apr 2017 19:04:25 +0000 (21:04 +0200)]
X /[ex] 4 < Y /[ex] 4
2017-04-24 Marc Glisse <marc.glisse@inria.fr>
gcc/
* match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
gcc/testsuite/
* gcc.dg/tree-ssa/cmpexactdiv-2.c: New file.
From-SVN: r247107
Volker Reichelt [Mon, 24 Apr 2017 16:43:01 +0000 (16:43 +0000)]
parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to error message.
* parser.c (cp_parser_cv_qualifier_seq_opt): Add fix-it info to
error message.
(cp_parser_virt_specifier_seq_opt): Likewise.
(set_and_check_decl_spec_loc): Likewise twice.
* g++.dg/diagnostic/duplicate1.C: New test.
* g++.dg/cpp0x/duplicate1.C: New test.
From-SVN: r247105
Martin Jambor [Mon, 24 Apr 2017 15:13:39 +0000 (17:13 +0200)]
[PR 80293] Dont totally-scalarize char arrays
2017-04-24 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/80293
* tree-sra.c (scalarizable_type_p): New parameter const_decl, make
char arrays not totally scalarizable if it is false.
(analyze_all_variable_accesses): Pass correct value in the new
parameter. Add a statistics counter.
testsuite/
* g++.dg/tree-ssa/pr80293.C: New test.
From-SVN: r247104
Jonathan Wakely [Mon, 24 Apr 2017 13:43:19 +0000 (14:43 +0100)]
PR libstdc++/80506 fix constant used in condition
PR libstdc++/80506
* include/bits/random.tcc (gamma_distribution::operator()): Fix magic
number used in loop condition.
From-SVN: r247099
Martin Liska [Mon, 24 Apr 2017 13:16:34 +0000 (13:16 +0000)]
Fix (PR middle-end/79931)
2017-04-24 Jan Hubicka <hubicka@ucw.cz>
PR middle-end/79931
* ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
2017-04-24 Martin Liska <mliska@suse.cz>
PR middle-end/79931
* g++.dg/ipa/pr79931.C: New test.
From-SVN: r247097
Richard Biener [Mon, 24 Apr 2017 11:57:53 +0000 (11:57 +0000)]
re PR fortran/80494 (ICE in wide_int_to_tree)
2017-04-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/80494
* tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
out for complex types.
* gfortran.dg/pr80494.f90: New testcase.
From-SVN: r247095
Jonathan Wakely [Mon, 24 Apr 2017 11:40:07 +0000 (12:40 +0100)]
PR libstdc++/80504 qualify calls to avoid ADL
PR libstdc++/80504
* include/bits/refwrap.h (ref, cref): Qualify calls.
* testsuite/20_util/reference_wrapper/80504.cc: New test.
From-SVN: r247094
Jonathan Wakely [Mon, 24 Apr 2017 11:40:02 +0000 (12:40 +0100)]
PR libstdc++/80493 fix invalid exception specification
PR libstdc++/80493
* include/experimental/optional (optional::swap): Fix exception
specification.
From-SVN: r247093
Richard Biener [Mon, 24 Apr 2017 11:27:44 +0000 (11:27 +0000)]
tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
2017-04-24 Richard Biener <rguenther@suse.de>
* tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
* tree-ssa-sccvn.c (print_scc): Print SCC size.
(extract_and_process_scc_for_name): Never fail but drop SCC to varying.
(DFS): Adjust and never fail.
(sccvn_dom_walker::fail): Remove.
(sccvn_dom_walker::before_dom_children): Adjust.
(run_scc_vn): Likewise and never fail.
* tree-ssa-pre.c (pass_pre::execute): Adjust.
(pass_fre::execute): Likewise.
From-SVN: r247092
Richard Biener [Mon, 24 Apr 2017 07:48:47 +0000 (07:48 +0000)]
re PR tree-optimization/79725 (Sinking opportunity missed if blocked by dead stmt)
2017-04-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/79725
* tree-ssa-sink.c (statement_sink_location): Return whether
failure reason was zero uses. Move that check later.
(sink_code_in_bb): Deal with zero uses by removing the stmt
if possible.
* gcc.dg/tree-ssa/ssa-sink-15.c: New testcase.
From-SVN: r247091
Richard Biener [Mon, 24 Apr 2017 07:34:51 +0000 (07:34 +0000)]
re PR c++/2972 (-Wuninitialized could warn about uninitialized member variable usage in constructors)
2017-04-24 Richard Biener <rguenther@suse.de>
PR c++/2972
* tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
pointer-based references.
* g++.dg/warn/Wuninitialized-10.C: New testcase.
From-SVN: r247090
Richard Biener [Mon, 24 Apr 2017 07:33:20 +0000 (07:33 +0000)]
re PR bootstrap/79814 (pass-instances.def:36:14: error: ‘*<unknown>.gcc::pass_manager::pass_warn_unused_result_1’ is used uninitialized in this function)
2017-04-24 Richard Biener <rguenther@suse.de>
PR bootstrap/79814
* pass_manager.h (pass_manager::operator new): Remove.
(pass_manager::operator delete): Likewise.
* passes.c (pass_manager::operator new): Remove.
(pass_manager::operator delete): Likewise.
(pass_manager::pass_manager): Zero individual pass members.
From-SVN: r247089
GCC Administrator [Mon, 24 Apr 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247088
Jerry DeLisle [Sun, 23 Apr 2017 15:49:16 +0000 (15:49 +0000)]
re PR fortran/80484 (Three syntax errors involving derived-type I/O)
2017-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/80484
* io.c (format_lex): Check for '/' and set token to FMT_SLASH.
(check_format): Move FMT_DT checking code to data_desc section.
* module.c (gfc_match_use): Include the case of INTERFACE_DTIO.
PR fortran/80484
* gfortran.dg/dtio_29.f03: New test.
From-SVN: r247084
Janus Weil [Sun, 23 Apr 2017 08:26:50 +0000 (10:26 +0200)]
re PR fortran/80121 (Memory leak with derived-type intent(out) argument)
2017-04-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80121
* trans-types.c (gfc_conv_procedure_call): Deallocate the components
of allocatable intent(out) arguments.
2017-04-22 Janus Weil <janus@gcc.gnu.org>
PR fortran/80121
* gfortran.dg/intent_out_9.f90: New test case.
From-SVN: r247083
Uros Bizjak [Sun, 23 Apr 2017 07:25:30 +0000 (09:25 +0200)]
re PR target/70799 (STV pass does not convert DImode shifts)
PR target/70799
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
<case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
Check "XEXP (src, 1)" operand here.
<case PLUS, case MINUS, case IOR, case XOR, case AND>:
Check "XEXP (src, 1)" operand here.
(dimode_scalar_chain::make_vector_copies): Detect count register
of a shift instruction. Zero extend count register from QImode
to DImode to satisfy vector shift pattern count operand predicate.
Substitute vector shift count operand with a DImode copy.
(dimode_scalar_chain::convert_reg): Ditto, zero-extend from
vector register.
testsuite/ChangeLog:
PR target/70799
* gcc.target/i186/pr70799-4.c: New test.
From-SVN: r247082
GCC Administrator [Sun, 23 Apr 2017 00:16:28 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247081
GCC Administrator [Sat, 22 Apr 2017 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247075
Janus Weil [Fri, 21 Apr 2017 20:47:12 +0000 (22:47 +0200)]
re PR fortran/80392 ([OOP] ICE with allocatable polymorphic function result in a procedure pointer component)
2017-04-21 Janus Weil <janus@gcc.gnu.org>
PR fortran/80392
* trans-types.c (gfc_get_derived_type): Prevent an infinite loop when
building a derived type that includes a procedure pointer component
with a polymorphic result.
2017-04-21 Janus Weil <janus@gcc.gnu.org>
PR fortran/80392
* gfortran.dg/proc_ptr_comp_49.f90: New test case.
From-SVN: r247069
Jason Merrill [Fri, 21 Apr 2017 19:26:54 +0000 (15:26 -0400)]
PR c++/80179 - ICE with initialized flexible array member.
* constexpr.c (verify_ctor_sanity): Handle flexible array members.
From-SVN: r247067
Uros Bizjak [Fri, 21 Apr 2017 19:17:48 +0000 (21:17 +0200)]
i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
* config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
(*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
(UNSPEC_NOREX_MEM): Remove definition.
From-SVN: r247066
Uros Bizjak [Fri, 21 Apr 2017 19:09:27 +0000 (21:09 +0200)]
pr79804.c: Add additional dg-error directive.
* gcc.target/i386/pr79804.c: Add additional dg-error directive.
From-SVN: r247065
Jonathan Wakely [Fri, 21 Apr 2017 14:49:19 +0000 (15:49 +0100)]
PR libstdc++/80316 make promise::set_value throw no_state error
PR libstdc++/80316
* include/std/future (_State_baseV2::_Setter::operator()): Remove
_S_check calls that are done after the pointer to the shared state is
already dereferenced.
(_State_baseV2::_Setter<_Res, void>): Define specialization for void
as partial specialization so it can be defined within the definition
of _State_baseV2.
(_State_baseV2::__setter): Call _S_check.
(_State_baseV2::__setter(promise<void>*)): Add overload for use by
promise<void>::set_value and promise<void>::set_value_at_thread_exit.
(promise<T>, promise<T&>, promise<void>): Make _State a friend.
(_State_baseV2::_Setter<void, void>): Remove explicit specialization.
(promise<void>::set_value, promise<void>::set_value_at_thread_exit):
Use new __setter overload.
* testsuite/30_threads/promise/members/at_thread_exit2.cc: New test.
* testsuite/30_threads/promise/members/set_exception.cc: Test
promise<T&> and promise<void> specializations.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
Test for no_state error condition.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
From-SVN: r247064
Jonathan Wakely [Fri, 21 Apr 2017 13:08:51 +0000 (14:08 +0100)]
Avoid deprecated warnings about std::auto_ptr in library headers
* include/backward/auto_ptr.h: Ignore deprecated warnings from use
of auto_ptr.
* include/bits/shared_ptr.h: Likewise.
* include/bits/shared_ptr_base.h: Likewise.
* include/bits/unique_ptr.h: Likewise.
* libstdc++-v3/testsuite/20_util/default_delete/48631_neg.cc: Adjust
dg-error lineno.
* libstdc++-v3/testsuite/20_util/default_delete/void_neg.cc: Likewise.
* libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc:
Likewise.
* libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc:
Likewise.
From-SVN: r247063
Richard Biener [Fri, 21 Apr 2017 12:47:02 +0000 (12:47 +0000)]
re PR tree-optimization/79547 (duplicate strlen calls with same argument not folded)
2017-04-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/79547
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
without any constraints.
* gcc.dg/tree-ssa/strlen-2.c: New testcase.
From-SVN: r247062
Richard Biener [Fri, 21 Apr 2017 12:09:20 +0000 (12:09 +0000)]
re PR tree-optimization/78847 (pointer arithmetic from c++ ranged-based for loop not optimized)
2017-04-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/78847
* fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
* g++.dg/tree-ssa/pr78847.C: New testcase.
From-SVN: r247061
Joseph Myers [Fri, 21 Apr 2017 10:37:43 +0000 (11:37 +0100)]
* es.po, fr.po: Update.
From-SVN: r247059
Mark Wielaard [Fri, 21 Apr 2017 09:02:03 +0000 (09:02 +0000)]
libiberty: Limit demangler maximum d_print_comp recursion call depth.
The fix for PR demangler/70909 and 67264 (endless demangler recursion)
catches when a demangle_component is printed in a cycle. But that doesn't
protect the call stack blowing up from non-cyclic nested types printed
recursively through d_print_comp. This can happen by a (very) long mangled
string that simply creates a very deep pointer or qualifier chain. Limit
the recursive d_print_comp call depth for a d_print_info to 1K nested
types.
libiberty/ChangeLog:
* cp-demangle.c (MAX_RECURSION_COUNT): New constant.
(struct d_print_info): Add recursion field.
(d_print_init): Initialize recursion.
(d_print_comp): Check and update d_print_info recursion depth.
From-SVN: r247056
Mark Wielaard [Fri, 21 Apr 2017 09:01:56 +0000 (09:01 +0000)]
libiberty: Always return NULL if d_add_substitution fails.
d_add_substitution can fail for various reasons, like when the subs array
is full. If d_add_substitution fails d_substitution should return NULL
early and not try to continue. Every other call of d_add_substitution
is handled in the same way.
libiberty/ChangeLog:
* cp-demangle.c (d_substitution): Return NULL if d_add_substitution
fails.
From-SVN: r247055
Mark Wielaard [Fri, 21 Apr 2017 09:01:44 +0000 (09:01 +0000)]
libiberty: Don't update and remove did_subs field from demangler structs.
The d_info field did_subs was used for estimating the string output
size. It was no longer used when the malloc-less callback interface
was introduced in 2007 (svn r121305). But the field was still updated.
When backtracking was introduced in 2013 (svn r205292) did_subs was
also added to the d_info_checkpoint struct. But except for updating
the field it was still not used.
Since it is never used just stop updating the field and remove it
from the two structs.
libiberty/ChangeLog:
* cp-demangle.h (struct d_info): Remove did_subs field.
* cp-demangle.c (struct d_info_checkpoint): Likewise.
(d_template_param): Don't update did_subs.
(d_substitution): Likewise.
(d_checkpoint): Don't assign did_subs.
(d_backtrack): Likewise.
(cplus_demangle_init_info): Don't initialize did_subs.
From-SVN: r247054
Richard Biener [Fri, 21 Apr 2017 08:58:39 +0000 (08:58 +0000)]
tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
2017-04-21 Richard Biener <rguenther@suse.de>
* tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
(build_distinct_type_copy): Likewise.
(build_variant_type_copy): Likewise.
* tree.c (build_qualified_type): Pass down mem-stat info.
(build_distinct_type_copy): Likewise.
(build_variant_type_copy): Likewise.
cp/
* cp-tree.h (copy_decl): Annotate with CXX_MEM_STAT_INFO.
(copy_type): Likewise.
* lex.c (copy_decl): Pass down mem-stat info.
(copy_type): Likewise.
From-SVN: r247053
Jakub Jelinek [Fri, 21 Apr 2017 08:51:53 +0000 (10:51 +0200)]
re PR c/80468 (ICE on invalid AVX512 code with -m32)
PR c/80468
* c-decl.c (finish_declspecs) <case cts_int_n>: If int_n_idx is not
enabled, set specs->type to integer_type_node.
* gcc.dg/pr80468.c: New test.
From-SVN: r247052
Martin Liska [Fri, 21 Apr 2017 08:50:19 +0000 (10:50 +0200)]
Add test-case (PR tree-optimization/66278).
2017-04-21 Martin Liska <mliska@suse.cz>
PR tree-optimization/66278
* gcc.dg/vect/pr66278.c: New test.
From-SVN: r247051
Richard Biener [Fri, 21 Apr 2017 08:17:23 +0000 (08:17 +0000)]
re PR tree-optimization/80237 (float to double conversion is not optimized away)
2017-04-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/80237
* tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
defaulted to NULL.
(phi_translate_1): Also allow a leader in AVAIL_OUT of pred
for a simplified result.
* gcc.dg/tree-ssa/tailcall-9.c: New testcase.
* gcc.dg/tree-ssa/ldist-pr45948.c: Remove undefined behavior,
adjust expected optimizations.
From-SVN: r247049
Richard Biener [Fri, 21 Apr 2017 08:12:27 +0000 (08:12 +0000)]
tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require sth as strict as a simple_iv but a chrec without symbols and an...
2016-04-21 Richard Biener <rguenther@suse.de>
* tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
sth as strict as a simple_iv but a chrec without symbols and an
operand defined in the loop we are peeling (and not some subloop).
(propagate_constants_for_unrolling): Propagate all constants.
* gcc.dg/vect/no-scevccp-outer-13.c: Adjust to prevent unrolling
of inner loops.
* gcc.dg/vect/no-scevccp-outer-7.c: Likewise.
* gcc.dg/vect/vect-104.c: Likewise.
From-SVN: r247048
Eric Botcazou [Fri, 21 Apr 2017 08:03:54 +0000 (08:03 +0000)]
re PR tree-optimization/80426 (wrong manipulation of range based on INT_MIN)
PR tree-optimization/80426
* gcc.c-torture/execute/
20170429-1.c: Rename into...
* gcc.c-torture/execute/
20170419-1.c: ...this.
From-SVN: r247046
GCC Administrator [Fri, 21 Apr 2017 00:16:27 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247045
Uros Bizjak [Thu, 20 Apr 2017 20:25:17 +0000 (22:25 +0200)]
re PR target/79804 (ICE in print_reg, at config/i386/i386.c:17637)
PR target/79804
* config/i386/i386.c (print_reg): Remove assert for disalowed
regno values, call output_operand_lossage instead.
testsuite/ChangeLog:
PR target/79804
* gcc.target/i386/pr79804.c: New test.
From-SVN: r247037
Uros Bizjak [Thu, 20 Apr 2017 19:04:36 +0000 (21:04 +0200)]
re PR target/78090 ([x86_64]: GCC allows integer register for inter unit conversion under -mtune-ctrl=^inter_unit_conversions .)
PR target/78090
* config/i386/constraints.md (Yc): New register constraint.
* config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
Use Yc constraint for alternative 2 of operand 0. Remove
preferred_for_speed attribute.
testsuite/ChangeLog:
PR target/78090
* gcc.target/i386/conversion-2.c: Remove obsolete test.
From-SVN: r247036
David Edelsohn [Thu, 20 Apr 2017 18:26:24 +0000 (18:26 +0000)]
* g++/opt/pr80436.C: XFAIL on AIX.
From-SVN: r247034
Jonathan Wakely [Thu, 20 Apr 2017 18:02:05 +0000 (19:02 +0100)]
PR c++/80473 allow suppressing notes about over-aligned new
gcc/cp:
PR c++/80473
* init.c (build_new_1): Suppress notes about over-aligned new when
the warning is suppressed.
gcc/testsuite:
PR c++/80473
* g++.dg/diagnostic/pr80473.C: New test.
From-SVN: r247033
Alexander Monakov [Thu, 20 Apr 2017 17:21:50 +0000 (20:21 +0300)]
omp-low: fix lastprivate/linear lowering for SIMT
gcc/
* omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
lastprivate clauses in SIMT case.
libgomp/
* testsuite/libgomp.c/target-36.c: New testcase.
From-SVN: r247029
Volker Reichelt [Thu, 20 Apr 2017 16:48:44 +0000 (16:48 +0000)]
c.opt (Wextra-semi): New C++ warning flag.
* c.opt (Wextra-semi): New C++ warning flag.
* doc/invoke.texi (-Wextra-semi): Document new warning option.
* parser.c (cp_parser_member_declaration): Add warning with fixit
information for extra semicolon after in-class function definition.
* g++.dg/warn/Wextra-semi.C: New test.
From-SVN: r247028
Edward Smith-Rowland [Thu, 20 Apr 2017 15:41:59 +0000 (15:41 +0000)]
PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
2017-04-20 Edward Smith-Rowland <3dw4rd@verizon.net>
PR libstdc++/68397 std::tr1::expint fails ... long double arguments.
* include/tr1/exp_integral.tcc: Increase iteration limits.
* testsuite/tr1/5_numerical_facilities/special_functions/15_expint/
pr68397.cc: New test.
* testsuite/special_functions/14_expint/pr68397.cc: New test.
From-SVN: r247027
Richard Biener [Thu, 20 Apr 2017 14:26:26 +0000 (14:26 +0000)]
re PR target/57796 (AVX2 gather vectorization: code bloat and reduction of performance)
2017-04-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/57796
* tree-vect-stmts.c (vect_model_store_cost): Cost scatters
as N scalar stores.
(vect_model_load_cost): Cost gathers as N scalar loads.
From-SVN: r247026
Richard Biener [Thu, 20 Apr 2017 14:25:11 +0000 (14:25 +0000)]
ggc-page.c (ggc_allocated_p): Rename to ...
2017-04-20 Richard Biener <rguenther@suse.de>
* ggc-page.c (ggc_allocated_p): Rename to ...
(safe_lookup_page_table_entry): ... this and return the lookup
result.
(gt_ggc_m_S): Use safe_lookup_page_table_entry.
From-SVN: r247025
Richard Biener [Thu, 20 Apr 2017 14:23:10 +0000 (14:23 +0000)]
re PR debug/80453 (another compare-debug failure)
2017-04-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/80453
* tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
* tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
from the conditions.
(vn_phi_eq): Pass them down.
(vn_phi_lookup): Record them.
(vn_phi_insert): Likewise.
From-SVN: r247024
Matthew Fortune [Thu, 20 Apr 2017 13:27:05 +0000 (13:27 +0000)]
MIPS: Prevent buffer overrun in uninitialised variable fix
gcc/
* config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
uninitialized variable warning to avoid buffer overrun.
From-SVN: r247022
Jonathan Wakely [Thu, 20 Apr 2017 13:04:28 +0000 (14:04 +0100)]
PR79862 check macro for type aliases that depend on <stdint.h>
PR libstdc++/79862
* include/std/atomic [!_GLIBCXX_USE_C99_STDINT_TR1] (atomic_int8_t)
(atomic_uint8_t, atomic_int16_t, atomic_uint16_t, atomic_int32_t,
(atomic_uint32_t, atomic_int64_t, atomic_uint64_t)
(atomic_int_least8_t, atomic_uint_least8_t, atomic_int_least16_t)
(atomic_uint_least16_t, atomic_int_least32_t, atomic_uint_least32_t)
(atomic_int_least64_t, atomic_uint_least64_t, atomic_int_fast8_t)
(atomic_uint_fast8_t, atomic_int_fast16_t, atomic_uint_fast16_t)
(atomic_int_fast32_t, atomic_uint_fast32_t, atomic_int_fast64_t)
(atomic_uint_fast64_t, atomic_intmax_t, atomic_uintmax_t): Don't
define.
From-SVN: r247021
Jakub Jelinek [Thu, 20 Apr 2017 10:51:33 +0000 (12:51 +0200)]
* crontab: Enable snapshots from gcc-7-branch.
From-SVN: r247020
Alexander Monakov [Thu, 20 Apr 2017 10:23:38 +0000 (13:23 +0300)]
doc: mention handling of {0} in -Wmissing-field-initializers (PR 71250)
PR other/71250
* doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
is suppressed for '{ 0 }' in C.
From-SVN: r247018
Jakub Jelinek [Thu, 20 Apr 2017 09:52:54 +0000 (11:52 +0200)]
* BASE-VER: Set to 8.0.0.
From-SVN: r247017
Thomas Preud'homme [Thu, 20 Apr 2017 09:44:18 +0000 (09:44 +0000)]
[ARM] Fix type for .init_array.* and .fini_array.* sections
2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
priority .init_array and .fini_array section with SECTION_NOTYPE
flag.
From-SVN: r247015
Jakub Jelinek [Thu, 20 Apr 2017 09:18:02 +0000 (11:18 +0200)]
re PR middle-end/80423 (GC related -fcompare-debug failure)
PR middle-end/80423
* tree.h (build_array_type): Add typeless_storage default argument.
* tree.c (type_cache_hasher::equal): Also compare
TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
(build_array_type): Add typeless_storage argument, set
TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
recursive call.
(build_nonshared_array_type): Adjust build_array_type_1 caller.
(build_array_type): Likewise. Add typeless_storage argument.
c-family/
* c-common.c (complete_array_type): Preserve TYPE_TYPELESS_STORAGE.
cp/
* tree.c (build_cplus_array_type): Call build_array_type
with the intended TYPE_TYPELESS_STORAGE flag value, instead
of calling build_array_type and modifying later TYPE_TYPELESS_STORAGE
on the shared type.
testsuite/
* g++.dg/other/pr80423.C: New test.
From-SVN: r247014
Senthil Kumar Selvaraj [Thu, 20 Apr 2017 05:46:02 +0000 (05:46 +0000)]
Skip pr80170.c for non-ptr32plus targets
The testcase uses 32 bit or bigger pointer offsets, and
that triggers an ptrofftype_p assert in tree.c.
gcc/testsuite
2017-04-19 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/pr80170.c: Require ptr32plus.
From-SVN: r247011
GCC Administrator [Thu, 20 Apr 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r247010
Eric Botcazou [Wed, 19 Apr 2017 19:27:09 +0000 (19:27 +0000)]
re PR tree-optimization/80426 (wrong manipulation of range based on INT_MIN)
PR tree-optimization/80426
* tree-vrp.c (extract_range_from_binary_expr_1): For an additive
operation on symbolic operands, also compute the overflow for the
invariant part when the operation degenerates into a negation.
PR tree-optimization/80426
* gcc.c-torture/execute/
20170419-1.c: New test.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r247007
Thomas Koenig [Wed, 19 Apr 2017 18:49:29 +0000 (18:49 +0000)]
re PR bootstrap/77661 (--enable-maintainer-mode causes in-tree-build of MPC to fail)
2017-04-19 Thomas Koenig <tkoenig@gcc.gnu.org>
Tobias Burnus <tobias.burnus@physik.fu-berlin.de>
PR bootstrap/77661
* Makefile.def: Don't pass --enable-maintainer-mode on to an
in-tree build MPC.
* Makefile.in: Regenerate.
Co-Authored-By: Tobias Burnus <tobias.burnus@physik.fu-berlin.de>
From-SVN: r247006
Jonathan Wakely [Wed, 19 Apr 2017 16:49:21 +0000 (17:49 +0100)]
Rationalise ABI links in libstdc++ manual
* doc/xml/manual/abi.xml: Rephrase one of the references to the
Itanium C++ ABI.
* doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement.
* doc/html/*: Regenerate.
From-SVN: r247003
Jakub Jelinek [Wed, 19 Apr 2017 16:32:02 +0000 (18:32 +0200)]
re PR debug/80461 (ICE in modified_type_die, at dwarf2out.c:12566)
PR debug/80461
* dwarf2out.c (modified_type_die, gen_type_die_with_usage):
Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
* g++.dg/debug/pr80461.C: New test.
From-SVN: r247002
Jakub Jelinek [Wed, 19 Apr 2017 16:31:11 +0000 (18:31 +0200)]
re PR c++/80459 (c-c++-common/opaque-vector.c FAILs)
PR c++/80459
* c-c++-common/opaque-vector.c (SIZEOF_MAXINT): Define.
(f): Don't test long double vectors if __SIZEOF_LONG_DOUBLE__
is not power of 2, or is more than 16 or more than SIZEOF_MAXINT.
From-SVN: r247001
Jakub Jelinek [Wed, 19 Apr 2017 16:29:45 +0000 (18:29 +0200)]
re PR debug/80436 (-fcompare-debug failure)
PR debug/80436
* tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
* g++.dg/opt/pr80436.C: New test.
From-SVN: r247000
Jonathan Wakely [Wed, 19 Apr 2017 15:18:24 +0000 (16:18 +0100)]
* libsupc++/new: Update comment on #endif directive.
From-SVN: r246999
Georg-Johann Lay [Wed, 19 Apr 2017 12:20:57 +0000 (12:20 +0000)]
re PR target/80462 ([avr] Incorrect "warning: uninitialized variable 'xxx' put into program memory area" for identical strings)
PR target/80462
* config/avr/avr.c (tree.h): Include it.
(cgraph.h): Include it.
(avr_encode_section_info): Don't warn for uninitialized progmem
variable if it's just an alias.
From-SVN: r246997
Richard Biener [Wed, 19 Apr 2017 12:06:35 +0000 (12:06 +0000)]
Update SSA after AutoPGO early inlining (PR ipa/65972).
2017-04-19 Richard Biener <rguenther@suse.de>
PR ipa/65972
* auto-profile.c (afdo_vpt_for_early_inline): Update SSA
when needed by AutoPGO.
From-SVN: r246996
Paulo Matos [Wed, 19 Apr 2017 12:00:47 +0000 (12:00 +0000)]
Fix typo in LTO documentation (PR lto/50345).
2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
PR lto/50345
* doc/lto.texi: Remove an extra 'that'.
From-SVN: r246995
Senthil Kumar Selvaraj [Wed, 19 Apr 2017 11:27:05 +0000 (11:27 +0000)]
Fix broken gcc.dg/torture/pr80341.c for avr
This patch skips pr80341.c for targets with int size less than 32 bits.
The assertion in the testcase holds only if sizeof(int) > sizeof(short),
which isn't true for smaller int size targets like the avr.
gcc/testsuite
2017-04-19 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/torture/pr80341.c: Require int32plus.
From-SVN: r246994
Jonathan Wakely [Wed, 19 Apr 2017 11:03:43 +0000 (12:03 +0100)]
PR libstdc++/80448 remove noexcept from defaulted functions
PR libstdc++/80448
* include/experimental/bits/fs_dir.h (directory_iterator)
(recursive_directory_iterator): Remove noexcept from defaulted
constructors.
From-SVN: r246993
Jonathan Wakely [Wed, 19 Apr 2017 10:49:12 +0000 (11:49 +0100)]
PR libstdc++/80446 cope with libc defining __has_builtin
PR libstdc++/80446
* include/std/type_traits (is_aggregate): Change __has_builtin checks.
* libsupc++/new (launder): Likewise.
From-SVN: r246992
Segher Boessenkool [Wed, 19 Apr 2017 10:03:35 +0000 (12:03 +0200)]
IRA: Don't create new regs for debug insns (PR80429)
In split_live_ranges_for_shrink_wrap IRA also splits regs that are
only used in debug insns, leading to -fcompare-debug failures.
PR rtl-optimization/80429
* ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
are only used in debug insns.
From-SVN: r246991