gcc.git
7 years agoPR c++/71710 - template using directive of field
Nathan Sidwell [Mon, 23 Jan 2017 20:24:32 +0000 (20:24 +0000)]
PR c++/71710 - template using directive of field

PR c++/71710 - template using directive of field
* pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL
check earlier.

PR C++/71710
* g++.dg/template/pr71710.C: New.

From-SVN: r244833

7 years agoPR c++/71406 - ICE with scope-ref'd template id exprs
Nathan Sidwell [Mon, 23 Jan 2017 20:19:07 +0000 (20:19 +0000)]
PR c++/71406 - ICE with scope-ref'd template id exprs

PR c++/71406 - ICE with scope-ref'd template id exprs
PR c++/77508
* typeck.c (finish_class_member_access_expr): Break up SCOPE_REF
before breaking up TEMPLATE_ID_EXPR.

PR c++/71406
PR c++/77508
* g++.dg/template/pr71406.C: New.

From-SVN: r244832

7 years agoarith.c (arith_power): If simplifying integer power expression to zero...
Thomas Koenig [Mon, 23 Jan 2017 19:43:28 +0000 (19:43 +0000)]
arith.c (arith_power): If simplifying integer power expression to zero...

2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>

* arith.c (arith_power):  If simplifying integer power expression
to zero, warn if -Winteger-division is given.

2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>

* gfortran.dg/integer_exponentiation_7.f90:  New test.

From-SVN: r244830

7 years agoaarch64.c (aarch64_elf_asm_constructor): Increase size of buf.
Andreas Tobler [Mon, 23 Jan 2017 19:35:50 +0000 (20:35 +0100)]
aarch64.c (aarch64_elf_asm_constructor): Increase size of buf.

2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>

    * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
    size of buf.
    (aarch64_elf_asm_destructor): Likewise.

From-SVN: r244828

7 years agore PR go/79037 (gccgo: Binaries crash with parforsetup: pos is not aligned on m68k)
Ian Lance Taylor [Mon, 23 Jan 2017 18:15:22 +0000 (18:15 +0000)]
re PR go/79037 (gccgo: Binaries crash with parforsetup: pos is not aligned on m68k)

PR go/79037
    compiler, runtime: align gc data for m68k

    The current GC requires that the gc data be aligned to at least a 4
    byte boundary, because it uses the lower two bits of the address for
    flags (see LOOP and PRECISE in runtime/mgc0.c).  As the gc data is
    stored as a [...]uintptr, that is normally always true.  However, on
    m68k, that only guarantees 2 byte alignment.  Fix it by forcing the
    alignment.

    The parfor code used by the current GC requires that the parfor data
    be aligned to at least an 8 byte boundary.  The code in parfor.c
    verifies this.  This is normally true, as the data uses uint64_t
    values, but, again, this must be enforced explicitly on m68k.

    Fixes GCC PR 79037.

    Reviewed-on: https://go-review.googlesource.com/35478

From-SVN: r244824

7 years agolibgo: bump library version to 11
Ian Lance Taylor [Mon, 23 Jan 2017 18:10:13 +0000 (18:10 +0000)]
libgo: bump library version to 11

    As usual I forgot to bump the library version when I updated the
    library to 1.8rc1.

    Reviewed-on: https://go-review.googlesource.com/35568

From-SVN: r244823

7 years ago69301.cc: Require atomic builtins.
Thomas Preud'homme [Mon, 23 Jan 2017 17:18:04 +0000 (17:18 +0000)]
69301.cc: Require atomic builtins.

2017-01-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    libstdc++-v3/
    * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins.

From-SVN: r244819

7 years ago* fr.po: Update.
Joseph Myers [Mon, 23 Jan 2017 16:35:51 +0000 (16:35 +0000)]
* fr.po: Update.

From-SVN: r244818

7 years agore PR rtl-optimization/71724 (ICE: Segmentation fault, deep recursion between combine...
Bernd Schmidt [Mon, 23 Jan 2017 16:30:55 +0000 (16:30 +0000)]
re PR rtl-optimization/71724 (ICE: Segmentation fault, deep recursion between combine_simplify_rtx and subst)

PR rtl-optimization/71724
* combine.c (if_then_else_cond): Look for situations where it is
beneficial to undo the work of one of the recursive calls.

From-SVN: r244817

7 years agore PR rtl-optimization/78634 (30% performance drop after r242832.)
Bernd Schmidt [Mon, 23 Jan 2017 16:17:33 +0000 (16:17 +0000)]
re PR rtl-optimization/78634 (30% performance drop after r242832.)

PR rtl-optimization/78634
* config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
(TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
* ifcvt.c (noce_try_cmove): Add missing cost check.

testsuite/
PR rtl-optimization/78634
* gcc.target/i386/funcspec-11.c: Also pass -mtune=i686.

From-SVN: r244816

7 years agore PR tree-optimization/70754 (ICE during predictive commoning)
Bin Cheng [Mon, 23 Jan 2017 15:59:19 +0000 (15:59 +0000)]
re PR tree-optimization/70754 (ICE during predictive commoning)

PR tree-optimization/70754
* tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
(reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
combined stmt before it if not NULL.
(combine_chains): Process refs reversely and compute dominance point
for root ref.

gcc/testsuite
PR tree-optimization/70754
* gfortran.dg/pr70754.f90: New test.

From-SVN: r244815

7 years agoPR libstdc++/79195 fix make_array type deduction
Jonathan Wakely [Mon, 23 Jan 2017 15:56:05 +0000 (15:56 +0000)]
PR libstdc++/79195 fix make_array type deduction

PR libstdc++/79195
* include/experimental/array (__make_array_elem): New class template
and partial specialization.
(__is_reference_wrapper): Move into __make_array_elem specialization.
(make_array): Use __make_array_elem to determine element type and move
static assertion into specialization. Qualify std::forward call.
(to_array): Add exception specifiation.
* testsuite/experimental/array/make_array.cc: Test argument types
without a common type.
* testsuite/experimental/array/neg.cc: Adjust expected error message.

From-SVN: r244813

7 years agoFix strstr folding (PR tree-optimization/79196).
Martin Liska [Mon, 23 Jan 2017 14:57:43 +0000 (15:57 +0100)]
Fix strstr folding (PR tree-optimization/79196).

2017-01-23  Martin Liska  <mliska@suse.cz>

PR tree-optimization/79196
* tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
(fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
instead of memcmp.
(strlen_optimize_stmt): Call the renamed function.
2017-01-23  Martin Liska  <mliska@suse.cz>

PR tree-optimization/79196
* gcc.dg/asan/pr79196.c: New test.
* gcc.dg/strlenopt-30.c: Update scanned pattern.

From-SVN: r244812

7 years agofix pr78384
Michael Matz [Mon, 23 Jan 2017 13:57:31 +0000 (13:57 +0000)]
fix pr78384

PR tree-optimization/78384
* tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.

testsuite/
PR tree-optimization/78384
* gcc.dg/pr78384.c: New test.

From-SVN: r244811

7 years agosem_util.adb (New_Copy_Tree): Code cleanup: removal of the internal map (ie.
Javier Miranda [Mon, 23 Jan 2017 13:34:31 +0000 (13:34 +0000)]
sem_util.adb (New_Copy_Tree): Code cleanup: removal of the internal map (ie.

2017-01-23  Javier Miranda  <miranda@adacore.com>

* sem_util.adb (New_Copy_Tree): Code cleanup:
removal of the internal map (ie. variable Actual_Map, its
associated local variables, and all the code handling it).
* sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode
force loading of the System package when processing a task type.
(Analyze_Protected_Type_Declaration): in GNATprove mode force
loading of the System package when processing a protected type.
* sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode
force loading of the System package when processing compilation
unit with a main-like subprogram.
* frontend.adb (Frontend): remove forced loading of the System
package.

From-SVN: r244810

7 years agosem_prag.adb (Default_Initial_Condition): If the desired type declaration is a derive...
Ed Schonberg [Mon, 23 Jan 2017 13:31:43 +0000 (13:31 +0000)]
sem_prag.adb (Default_Initial_Condition): If the desired type declaration is a derived type declaration with discriminants...

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Default_Initial_Condition): If the desired type
declaration is a derived type declaration with discriminants,
it is rewritten as a private type declaration.
* sem_ch13.adb (Replace_Type_References_Generic,
Visible_Component): A discriminated private type with descriminnts
has components that must be rewritten as selected components
if they appear as identifiers in an aspect expression such as
a Default_Initial_Condition.
* sem_util.adb (Defining_Entity): support N_Iterator_Specification
nodes.

From-SVN: r244809

7 years agoghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.
Hristian Kirtchev [Mon, 23 Jan 2017 13:28:58 +0000 (13:28 +0000)]
ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine.
* gnat1drv.adb Generate an empty object file for an ignored
Ghost compilation unit.
* inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting.

From-SVN: r244808

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 13:27:02 +0000 (14:27 +0100)]
[multiple changes]

2017-01-23  Yannick Moy  <moy@adacore.com>

* sem_ch4.adb (Analyze_Indexed_Component_Form):
Adapt to inlined prefix with string literal subtype.
* inline.adb (Expand_Inlined_Call): Keep unchecked
conversion inside inlined call when formal type is constrained.

2017-01-23  Javier Miranda  <miranda@adacore.com>

* sem_util.adb (New_Copy_Tree): Code cleanup:
removal of global variables. All the global variables, global
functions and tables of this subprogram are now declared locally.

From-SVN: r244807

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 13:24:47 +0000 (14:24 +0100)]
[multiple changes]

2017-01-23  Gary Dismukes  <dismukes@adacore.com>

* exp_strm.ads: Minor reformatting and typo fixes.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb,
exp_aggr.adb: Minor reformatting.
* g-diopit.adb: minor grammar/punctuation fix in comment.
* g-byorma.ads: minor fix of unbalanced parens in comment.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* par.adb: Update the documentation of component Labl.
* par-ch6.adb (P_Return_Statement): Set the expected label of
an extended return statement to Error.

2017-01-23  Tristan Gingold  <gingold@adacore.com>

* s-boustr.ads, s-boustr.adb (Is_Full): New function.

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* expander.adb: Handle N_Delta_Aggregate.

2017-01-23  Javier Miranda  <miranda@adacore.com>

* exp_ch6.adb (Expand_Call): Improve the code that
checks if some formal of the called subprogram is a class-wide
interface, to handle subtypes of class-wide interfaces.

2017-01-23  Javier Miranda  <miranda@adacore.com>

* checks.adb (Apply_Parameter_Aliasing_Checks):
Remove side effects of the actuals before generating the overlap
check.

From-SVN: r244806

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 13:20:22 +0000 (14:20 +0100)]
[multiple changes]

2017-01-23  Justin Squirek  <squirek@adacore.com>

* exp_strm.ads, exp_strm.ads
(Build_Record_Or_Elementary_Input_Function): Add an extra parameter so
as to avoid getting the underlying type by default.
* exp_attr.adb (Expand_N_Attribute_Reference): Remove use of
underlying type in the Iiput and output attribute cases when
building their respective functions.

2017-01-23  Gary Dismukes  <dismukes@adacore.com>

* scng.adb: Minor reformatting of error message.

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Do not attempt
to freeze the return type of an expression funxtion that is a
completion, if the type is a limited view and the non-limited
view is available.

From-SVN: r244805

7 years agore PR tree-optimization/79186 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu...
Richard Biener [Mon, 23 Jan 2017 13:08:44 +0000 (13:08 +0000)]
re PR tree-optimization/79186 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu:  Segmentation fault (in VRP))

2017-01-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/79186
* tree-vrp.c (register_new_assert_for): Make sure we've seen
both incoming edges before moving an assert.

* gcc.dg/torture/pr79186.c: New testcase.
* gcc.dg/torture/pr79187.c: Likewise.

From-SVN: r244804

7 years agoFix compute_complex_assign_jump_func
Martin Jambor [Mon, 23 Jan 2017 13:05:00 +0000 (14:05 +0100)]
Fix compute_complex_assign_jump_func

2017-01-23  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (load_from_param_1): Removed.
(load_from_unmodified_param): Bits from load_from_param_1 put back
here.
(load_from_param): Removed.
(compute_complex_assign_jump_func): Removed stmt2 and just replaced it
with stmt.  Reverted back to use of load_from_unmodified_param.

testsuite/
* gcc.dg/ipa/vrp8.c: New test.

From-SVN: r244803

7 years ago[PR 79108] Put ipa_node_params to GC memory
Martin Jambor [Mon, 23 Jan 2017 13:01:31 +0000 (14:01 +0100)]
[PR 79108] Put ipa_node_params to GC memory

2017-01-23  Martin Jambor  <mjambor@suse.cz>

PR ipa/79108
* ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
(ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
field a pointer to garbage collected vector, mark lattices and
ipcp_orig_node with GTY((skip)).
(ipa_get_param_count): Adjust to descriptors being a pointer.
(ipa_get_param): Likewise.
(ipa_get_type): Likewise.
(ipa_get_param_move_cost): Likewise.
(ipa_set_param_used): Likewise.
(ipa_get_controlled_uses): Likewise.
(ipa_set_controlled_uses): Likewise.
(ipa_is_param_used): Likewise.
(ipa_node_params_t): Move into garbage collector.  New methods insert
and remove.
(ipa_node_params_sum): Annotate wth GTY(()).
(ipa_check_create_node_params): Adjust to ipa_node_params_sum being
garbage collected.
(ipa_load_from_parm_agg): Adjust declaration.
* ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
* ipa-profile.c (ipa_profile): Likewise.
* ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
(ipa_populate_param_decls): Make descriptors parameter garbage
collected.
(ipa_dump_param): Adjust to descriptors being a pointer.
(ipa_alloc_node_params): Likewise.
(ipa_initialize_node_params): Likewise.
(load_from_param_1): Make descriptors parameter garbage collected.
(load_from_unmodified_param): Likewise.
(load_from_param): Likewise.
(ipa_load_from_parm_agg): Likewise.
(ipa_node_params::~ipa_node_params): Removed.
(ipa_free_all_node_params): Remove call to delete operator.
(ipa_node_params_t::insert): New.
(ipa_node_params_t::remove): Likewise.
(ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
copy known_csts and known_contexts vectors.
(ipa_read_node_info): Adjust to descriptors being a pointer.
(ipcp_modif_dom_walker): Make m_descriptors field garbage
collected.
(ipcp_transform_function): Make descriptors variable garbage
collected.

testsuite/
* gfortran.dg/lto/pr79108_0.f90: New test.

From-SVN: r244802

7 years agoAdd AVX512 k-mask intrinsics
Andrew Senkevich [Mon, 23 Jan 2017 12:52:39 +0000 (12:52 +0000)]
Add AVX512 k-mask intrinsics

gcc/
* config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
* config/i386/avx512dqintrin.h: Ditto.
* config/i386/avx512fintrin.h: Ditto.
* gcc/config/i386/i386.c: Handle new builtins.
* config/i386/i386-builtin.def: Add new builtins.
* config/i386/sse.md (ktest<mode>, kortest<mode>): New.
(UNSPEC_KORTEST, UNSPEC_KTEST): New.

gcc/testsuite/
* gcc.target/i386/avx512bw-ktestd-1.c: New test.
* gcc.target/i386/avx512bw-ktestq-1.c: Ditto.
* gcc.target/i386/avx512dq-ktestb-1.c: Ditto.
* gcc.target/i386/avx512f-ktestw-1.c: Ditto.
* gcc.target/i386/avx512bw-kortestd-1.c: Ditto.
* gcc.target/i386/avx512bw-kortestq-1.c: Ditto.
* gcc.target/i386/avx512dq-kortestb-1.c: Ditto.
* gcc.target/i386/avx512f-kortestw-1.c: Ditto.
* gcc.target/i386/avx512bw-ktestd-2.c: Ditt
* gcc.target/i386/avx512bw-ktestq-2.c: Ditto.
* gcc.target/i386/avx512dq-ktestb-2.c: Ditto.
* gcc.target/i386/avx512f-ktestw-2.c: Ditto.
* gcc.target/i386/avx512bw-kortestd-2.c: Ditto.
* gcc.target/i386/avx512bw-kortestq-2.c: Ditto.
* gcc.target/i386/avx512dq-kortestb-2.c: Ditto.
* gcc.target/i386/avx512f-kortestw-2.c: Ditto.

From-SVN: r244801

7 years agore PR testsuite/78421 (vect-strided-a-u8-i2-gap.c fails on armeb)
Richard Biener [Mon, 23 Jan 2017 12:24:35 +0000 (12:24 +0000)]
re PR testsuite/78421 (vect-strided-a-u8-i2-gap.c fails on armeb)

PR testsuite/78421
* lib/target-supports.exp (check_effective_target_vect_hw_misalign):
If the target is ARM return the result of the
check_effective_target_arm_vect_no_misalign proc.
* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: If the target does not
support unaligned vectors then only expect one of the loops to be
unrolled.

Co-Authored-By: Nick Clifton <nickc@redhat.com>
From-SVN: r244796

7 years agoMinor editing.
Arnaud Charlet [Mon, 23 Jan 2017 12:08:22 +0000 (13:08 +0100)]
Minor editing.

From-SVN: r244795

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 12:07:34 +0000 (13:07 +0100)]
[multiple changes]

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta
aggregate construct.
(P_Record_Or_Array_Component_Association): An array aggregate
can start with an Iterated_Component_Association.
* scng.adb: Modify error message on improper use of @ in earlier
versions of the language.
* sinfo.ads: New node kind N_Delta_Aggregate.
* sinfo.adb: An N_Delta_Aggregate has component associations and
an expression.
* sem_res.adb (Resolve): Call Resolve_Delta_Aggregate.
* sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association):
Create a new index for each one of the choices in the association,
to prevent spurious homonyms in the scope.
(Resolve_Delta_Aggregate): New.
* sem.adb: An N_Delta_Aggregate is analyzed like an aggregate.
* exp_util.adb (Insert_Actions): Take into account
N_Delta_Aggregate.
* exp_aggr.ads: New procedure Expand_N_Delta_Aggregate.
* exp_aggr.adb: New procedure Expand_N_Delta_Aggregate,
and local procedures Expand_Delta_Array_Aggregate and
expand_Delta_Record_Aggregate.
* sprint.adb: Handle N_Delta_Aggregate.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch11.adb (Expand_N_Exception_Declaration): Generate an
empty name when the exception declaration is subject to pragma
Discard_Names.
(Null_String): New routine.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* par-ch9.adb (P_Protected_Definition): Parse
any optional and potentially illegal pragmas which appear in
a protected operation declaration list.
(P_Task_Items): Parse
any optional and potentially illegal pragmas which appear in a
task item list.

From-SVN: r244794

7 years agouse-after-scope: handle writes to a poisoned variable
Martin Liska [Mon, 23 Jan 2017 12:06:13 +0000 (12:06 +0000)]
use-after-scope: handle writes to a poisoned variable

2017-01-23  Martin Liska  <mliska@suse.cz>

* gcc.dg/asan/use-after-scope-10.c: New test.
* gcc.dg/asan/use-after-scope-11.c: New test.
* g++.dg/asan/use-after-scope-5.C: New test.
2017-01-23  Jakub Jelinek  <jakub@redhat.com>
    Martin Liska  <mliska@suse.cz>

* asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
* asan.c (asan_expand_poison_ifn): Support stores and use
appropriate ASAN report function.
* internal-fn.c (expand_ASAN_POISON_USE): New function.
* internal-fn.def (ASAN_POISON_USE): Declare.
* tree-into-ssa.c (maybe_add_asan_poison_write): New function.
(maybe_register_def): Create ASAN_POISON_USE when sanitizing.
* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
ASAN_POISON calls w/o LHS.
* tree-ssa.c (execute_update_addresses_taken): Create clobber
for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
* gimplify.c (asan_poison_variables): Add attribute
use_after_scope_memory to variables that really needs to live
in memory.
* tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
having the attribute.

From-SVN: r244793

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 12:04:16 +0000 (13:04 +0100)]
[multiple changes]

2017-01-23  Pascal Obry  <obry@adacore.com>

* s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which
is needed when a foreign thread call a Win32 API using a thread handle
like GetThreadTimes() for example.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
allow an 'Address clause to be specified on a prefix of a
class-wide type.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* checks.adb (Insert_Valid_Check): Ensure that the prefix of
attribute 'Valid is a renaming of the original expression when
the expression denotes a name. For all other kinds of expression,
use a constant to capture the value.
* exp_util.adb (Is_Name_Reference): Moved to Sem_Util.
* sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util.

2017-01-23  Justin Squirek  <squirek@adacore.com>

* sem_eval.adb (Eval_Integer_Literal): Add special
case to avoid optimizing out check if the literal appears in
an if-expression.

From-SVN: r244792

7 years agoSpeed up use-after-scope (v2): rewrite into SSA
Martin Liska [Mon, 23 Jan 2017 12:02:13 +0000 (13:02 +0100)]
Speed up use-after-scope (v2): rewrite into SSA

2017-01-23  Martin Liska  <mliska@suse.cz>

* asan.c (create_asan_shadow_var): New function.
(asan_expand_poison_ifn): Likewise.
* asan.h (asan_expand_poison_ifn): New declaration.
* internal-fn.c (expand_ASAN_POISON): Likewise.
* internal-fn.def (ASAN_POISON): New builtin.
* sanopt.c (pass_sanopt::execute): Expand
asan_expand_poison_ifn.
* tree-inline.c (copy_decl_for_dup_finish): Make function
external.
* tree-inline.h (copy_decl_for_dup_finish): Likewise.
* tree-ssa.c (is_asan_mark_p): New function.
(execute_update_addresses_taken): Rewrite local variables
(identified just by use-after-scope as addressable) into SSA.
2017-01-23  Martin Liska  <mliska@suse.cz>

* gcc.dg/asan/use-after-scope-3.c: Add additional flags.
* gcc.dg/asan/use-after-scope-9.c: Likewise and grep for
sanopt optimization for ASAN_POISON.

From-SVN: r244791

7 years agosem_ch4.adb (Try_Primitive_Operations, [...]): argument is valid if it is a derived...
Ed Schonberg [Mon, 23 Jan 2017 12:00:26 +0000 (12:00 +0000)]
sem_ch4.adb (Try_Primitive_Operations, [...]): argument is valid if it is a derived type with unknown discriminants that...

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Try_Primitive_Operations,
Is_Valid_First_Argument_Of): argument is valid if it is a derived
type with unknown discriminants that matches its underlying
record view.
* exp_util.adb (Expand_Subtype_From_Expr): Do not expand
expression if its type is derived from a limited type with
unknown discriminants, because the expansion (which is a call)
must be expanded in the enclosing context to add the proper build-
in-place parameters to the call.
* lib.ads, exp_ch9.adb: Minor fixes in comments.

From-SVN: r244790

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:57:27 +0000 (12:57 +0100)]
[multiple changes]

2017-01-23  Yannick Moy  <moy@adacore.com>

* frontend.adb (Frontend): Do not load runtime
unit for GNATprove when parsing failed.
* exp_ch9.adb: minor removal of extra whitespace
* exp_ch6.adb: minor typo in comment
* sem_util.adb: Code cleanup.
* exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment
* a-ngcefu.adb: minor style fix in whitespace

2017-01-23  Thomas Quinot  <quinot@adacore.com>

* scos.ads: Document usage of 'd' as default SCO kind for
declarations.
* par_sco.adb (Traverse_Declarations_Or_Statements.
Traverse_Degenerate_Subprogram): New supporting routine for expression
functions and null procedures.
(Traverse_Declarations_Or_Statements.Traverse_One): Add
N_Expression_Function to the subprogram case; add required
support for null procedures and expression functions.

2017-01-23  Bob Duff  <duff@adacore.com>

* namet.ads (Bounded_String): Decrease the size of type
Bounded_String to avoid running out of stack space.
* namet.ads (Append): Don't ignore buffer overflow; raise
Program_Error instead.

From-SVN: r244789

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:54:05 +0000 (12:54 +0100)]
[multiple changes]

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb,
sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor
reformatting.
* exp_ch9.adb: minor style fix in comment.

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Allocator): Handle properly a type derived
for a limited record extension with unknown discriminants whose
full view has no discriminants.

2017-01-23  Yannick Moy  <moy@adacore.com>

* exp_spark.adb: Alphabetize with clauses.

From-SVN: r244788

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:51:26 +0000 (12:51 +0100)]
[multiple changes]

2017-01-23  Gary Dismukes  <dismukes@adacore.com>

* a-calend.adb, prep.adb, debug.adb, prj.ads, prepcomp.adb,
exp_disp.adb, s-imgrea.adb, g-socket.adb, g-socket.ads, sem_ch13.adb,
prj-tree.ads: Minor spelling change for consistency (behaviour ->
behavior).

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* scng.adb (Scan): Use Ada version Ada_2020 to flag use of
Target_Name.
* par-ch4.adb (P_Primary): Ditto.
* opt.ads: Add Ada_2020 (optimistically) to enumeration list of
Ada_Version_Type.
* switch-c.adb (Scan_Front_End_Switches): Recognize -gnat2020 for
new Ada version Ada_2020.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_attr.adb (Expand_Loop_Entry_Attribute): Force the generation
of a nominal type for the constant which captures the value of
the attribute prefix. Various clean ups.
* sem_attr.adb (Analyze_Attribute): Clean up the processing of
'Loop_Entry.

2017-01-23  Yannick Moy  <moy@adacore.com>

* sem_util.adb (Has_Enabled_Property): Treat
protected objects and variables differently from other variables.

From-SVN: r244787

7 years agosem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Split original Ada 95 part off...
Thomas Quinot [Mon, 23 Jan 2017 11:33:13 +0000 (11:33 +0000)]
sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Split original Ada 95 part off into new subprogram below.

2017-01-23  Thomas Quinot  <quinot@adacore.com>

* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
Split original Ada 95 part off into new subprogram
below. Call that subprogram (instead of proceeding with
AI95-0133 behaviour) if debug switch -gnatd.p is in use.
(Adjust_Record_For_Reverse_Bit_Order_Ada_95): ... new subprogram
* debug.adb Document new switch -gnatd.p
* freeze.adb (Freeze_Entity.Freeze_Record_Type): Do not adjust
record for reverse bit order if an error has already been posted
on the record type.  This avoids generating extraneous "info:"
messages for illegal code.

From-SVN: r244786

7 years agosem_ch3.adb (Analyze_Declarations): Correct comments
Justin Squirek [Mon, 23 Jan 2017 11:31:25 +0000 (11:31 +0000)]
sem_ch3.adb (Analyze_Declarations): Correct comments

2017-01-23  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb (Analyze_Declarations): Correct comments
* freeze.adb (Find_Constant): Add detection of deferred constants
so they are not incorrectly flagged as premature.

From-SVN: r244785

7 years agoMinor reformatting.
Arnaud Charlet [Mon, 23 Jan 2017 11:29:46 +0000 (12:29 +0100)]
Minor reformatting.

From-SVN: r244784

7 years agoscans.ads: New token At_Sign.
Ed Schonberg [Mon, 23 Jan 2017 11:29:17 +0000 (11:29 +0000)]
scans.ads: New token At_Sign.

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* scans.ads: New token At_Sign. Remove '@' from list of illegal
characters for future version of the language. '@' is legal name.
* scng.ads, scng.adb (Scan):  Handle '@' appropriately.
* scn.adb (Scan_Reserved_Identifier): An occurrence of '@'
denotes a Target_Name.
* par-ch4.adb (P_Name, P_Primary): Handle Target_Name.
* sinfo.ads, sinfo.adb (N_Target_Name): New non-terminal node.
(Has_Target_Names): New flag on N_Assignment_Statement, to
indicate that RHS has occurrences of N_Target_Name.
* sem.adb: Call Analyze_Target_Name.
* sem_ch5.ads, sem_ch5.adb (Analyze_Target_Name): New subpogram.
(urrent_LHS): Global variable that denotes LHS of assignment,
used in the analysis of Target_Name nodes.
* sem_res.adb (Resolve_Target_Name): New procedure.
* exp_ch5.adb (Expand_Assign_With_Target_Names): (AI12-0125):
N is an assignment statement whose RHS contains occurences of @
that designate the value of the LHS of the assignment. If the
LHS is side-effect free the target names can be replaced with
a copy of the LHS; otherwise the semantics of the assignment
is described in terms of a procedure with an in-out parameter,
and expanded as such.
(Expand_N_Assignment_Statement): Call
Expand_Assign_With_Target_Names when needed.
* exp_util.adb (Insert_Actions): Take into account N_Target_Name.
* sprint.adb: Handle N_Target_Name.

From-SVN: r244783

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:27:01 +0000 (12:27 +0100)]
[multiple changes]

2017-01-23  Eric Botcazou  <ebotcazou@adacore.com>

* checks.adb: Minor fix in comment.

2017-01-23  Philippe Gil  <gil@adacore.com>

* g-debpoo.adb (Do_Report) remove freed chunks from chunks
count in Sort = Memory_Usage or Allocations_Count

2017-01-23  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb: Code cleanup.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Move all global
variables to the local variable section. Update the profile
of various nested routine that previously had visibility
of those globals. One the matching phase has completed,
remove certain classes of clauses which are considered noise.
(Check_Dependency_Clause): Properly detect a match between two
'Result attributes. Update the various post-match cases to use
Is_Already_Matched as this routine now automatically recognizes
a previously matched 'Result attribute.
(Is_Already_Matched): New routine.
(Remove_Extra_Clauses): New routine.
(Report_Extra_Clauses): Remove the detection of ... => null
clauses as this is now done in Remove_Extra_Clauses.

From-SVN: r244782

7 years agoFix typo.
Arnaud Charlet [Mon, 23 Jan 2017 11:24:32 +0000 (12:24 +0100)]
Fix typo.

From-SVN: r244781

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:23:48 +0000 (12:23 +0100)]
[multiple changes]

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* sem_aggr.adb (Resolve_Array_Aggregate): In ASIS mode do not
report on spurious overlaps between values involving a subtype
with a static predicate, because the expansion of such a subtype
into individual ranges in inhibited in ASIS mode.

2017-01-23  Justin Squirek  <squirek@adacore.com>

* sem_ch3.adb (Analyze_Declarations): Add detection
of an edge case and delay freezing if it is present.

From-SVN: r244780

7 years ago[testsuite] Fix FAIL: gcc.dg/lto/pr69188 on bare-metal targets
Kyrylo Tkachov [Mon, 23 Jan 2017 11:22:54 +0000 (11:22 +0000)]
[testsuite] Fix FAIL: gcc.dg/lto/pr69188 on bare-metal targets

PR lto/69188
* gcc.dg/lto/pr69188_0.c: Require profiling support for testcase.

From-SVN: r244779

7 years agosem_ch3.adb, [...]: Minor reformatting.
Hristian Kirtchev [Mon, 23 Jan 2017 11:21:37 +0000 (11:21 +0000)]
sem_ch3.adb, [...]: Minor reformatting.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb, exp_spark.adb, exp_attr.adb, sem_ch9.adb, sem_prag.adb,
sem_util.adb, sem_warn.adb, exp_ch3.adb: Minor reformatting.

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* freeze.adb (Freeze_Subprogram): Ensure that all anonymous
access-to-subprogram types inherit the convention of the
associated subprogram. (Set_Profile_Convention): New routine.
* sem_ch6.adb (Check_Conformance): Do not compare the conventions
of the two entities directly, use Conventions_Match to account
for anonymous access-to-subprogram and subprogram types.
(Conventions_Match): New routine.

From-SVN: r244778

7 years agoexp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes which return Univers...
Claire Dross [Mon, 23 Jan 2017 11:19:56 +0000 (11:19 +0000)]
exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes which return Universal_Integer...

2017-01-23  Claire Dross  <dross@adacore.com>

* exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes
which return Universal_Integer, force the overflow check flag for
Length and Range_Length for types as big as Long_Long_Integer.

From-SVN: r244777

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:19:07 +0000 (12:19 +0100)]
[multiple changes]

2017-01-23  Claire Dross  <dross@adacore.com>

* exp_spark.adb (Expand_SPARK_Attribute_Reference):  For
attributes which return Universal_Integer, introduce a conversion
to the expected type with the appropriate check flags set.
* sem_res.adb (Resolve_Range): The higher bound can be in Typ's
base type if the range is null. It may still be invalid if it
is higher than the lower bound. This is checked later in the
context in which the range appears.

2017-01-23  Pierre-Marie de Rodat  <derodat@adacore.com>

* scos.ads: Introduce a constant to represent ignored
dependencies in SCO_Unit_Table_Entry.

From-SVN: r244776

7 years ago[multiple changes]
Arnaud Charlet [Mon, 23 Jan 2017 11:17:23 +0000 (12:17 +0100)]
[multiple changes]

2017-01-23  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove extra
spaces from error messages.

2017-01-23  Ed Schonberg  <schonberg@adacore.com>

* exp_ch3.adb (Check_Large_Modular_Array): New procedure,
subsidiary to Expand_N_Object_ Declaration, to compute a guard on
an object declaration for an array type with a modular index type
with the size of Long_Long_Integer. Special processing is needed
in this case to compute reliably the size of the object, and
eventually  to raise Storage_Error, when wrap-around arithmetic
might compute a meangingless size for the object.

2017-01-23  Justin Squirek  <squirek@adacore.com>

* a-wtenau.adb, par-endh.adb, sem_prag.adb,
sem_type.adb: Code cleanups.

From-SVN: r244775

7 years agosem_res.adb (Resolve_Call): In the part of the code where it is deciding whether...
Bob Duff [Mon, 23 Jan 2017 11:13:23 +0000 (11:13 +0000)]
sem_res.adb (Resolve_Call): In the part of the code where it is deciding whether to turn the call into an...

2017-01-23  Bob Duff  <duff@adacore.com>

* sem_res.adb (Resolve_Call): In the part of the code where
it is deciding whether to turn the call into an indexed
component, avoid doing so if the call is to an instance of
Unchecked_Conversion. Otherwise, the compiler turns it into an
indexed component, and resolution of that turns it back into a
function call, and so on, resulting in infinite recursion.
* sem_util.adb (Needs_One_Actual): If the first formal has a
default, then return False.

From-SVN: r244774

7 years agore PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initializati...
Maxim Ostapenko [Mon, 23 Jan 2017 09:12:29 +0000 (11:12 +0200)]
re PR lto/79061 ([LTO][ASAN] LTO plus ASAN fails with "AddressSanitizer: initialization-order-fiasco")

Revert fix for PR lto/79061 due to this regresses compile-time by 100%
on some fortran cases.

From-SVN: r244773

7 years ago[ARM,AArch64][testsuite] Fix format string in AdvSIMD tests.
Christophe Lyon [Mon, 23 Jan 2017 08:56:36 +0000 (08:56 +0000)]
[ARM,AArch64][testsuite] Fix format string in AdvSIMD tests.

2017-01-23  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK_POLY): New.
(CHECK_RESULTS_NAMED_NO_FP16): Call CHECK_POLY instead of CHECK
for poly*_t types.
* gcc.target/aarch64/advsimd-intrinsics/vcnt.c (FNNAME): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcombine.c (void
exec_vcombine): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcreate.c (FNNAME): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vget_high.c (void exec_vget_high): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vget_low.c (void exec_vget_low): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vldX.c (void exec_vldX): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c (void exec_vldX_dup): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c (void exec_vldX_lane): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vmul.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vmvn.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vqtbX.c (void exec_vqtbX): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vrev.c (void exec_vrev): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vsXi_n.inc: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vsli_n.c (void vsli_extra): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vsri_n.c (void vsri_extra): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c (void exec_vstX_lane): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vtbX.c (void exec_vtbX): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c (int main):
Likewise.
(TEST_VGET_LANE): Cast to uint to avoid warning.
* gcc.target/aarch64/advsimd-intrinsics/unary_sat_op.inc (void
FNNAME): Fix PRIx format for int16_t, int32_t, uint16_t, uint32_t.
* gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c (void
exec_vfma_vfms_n): Fix PRIx format for float64_t.
* gcc.target/aarch64/advsimd-intrinsics/vmovn.c (void exec_vmovn):
Fix PRIx format for int8_t, int16_t, uint8_t, uint16_t.
* gcc.target/aarch64/advsimd-intrinsics/vmul_lane.c (void
exec_vmul_lane): Fix PRIx format for int16_t, uint16_t.
* gcc.target/aarch64/advsimd-intrinsics/vmul_n.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vmull.c (void exec_vmull):
Fix PRIx format for int16_t, int64_t, uint16_t, uint64_t. Call
CHECK_POLY instead of CHECK for poly64_t types.
* gcc.target/aarch64/advsimd-intrinsics/vmull_lane.c (void
exec_vmull_lane): Fix PRIx format for int64_t, uint64_t.
* gcc.target/aarch64/advsimd-intrinsics/vpXXX.inc:
Fix PRIx format for int8_t, int16_t, uint8_t, uint16_t.
* gcc.target/aarch64/advsimd-intrinsics/vqabs.c (void
vqabs_extra): Fix PRIx format for int16_t, int32_t, uint16_t,
uint32_t.
* gcc.target/aarch64/advsimd-intrinsics/vqdmull.c: Fix PRIx format
for int32_t, int64_t.
* gcc.target/aarch64/advsimd-intrinsics/vqneg.c (void
vqneg_extra): Fix PRIx format for int16_t, int32_t.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c
(TEST_VREINTERPRET_TO_POLY): New. (main): Call
TEST_VREINTERPRET_TO_POLY instead of TEST_VREINTERPRET where
needed.

From-SVN: r244772

7 years agopatch_tester.sh (TESTLOGS): Remove $TARGET/libjava/testsuite/libjava.sum.
Gerald Pfeifer [Mon, 23 Jan 2017 07:24:15 +0000 (07:24 +0000)]
patch_tester.sh (TESTLOGS): Remove $TARGET/libjava/testsuite/libjava.sum.

* patch_tester.sh (TESTLOGS): Remove
$TARGET/libjava/testsuite/libjava.sum.

From-SVN: r244771

7 years ago* doc/xml/manual/debug.xml: code.google.com uses https now.
Gerald Pfeifer [Mon, 23 Jan 2017 07:18:42 +0000 (07:18 +0000)]
* doc/xml/manual/debug.xml: code.google.com uses https now.

From-SVN: r244770

7 years agoDaily bump.
GCC Administrator [Mon, 23 Jan 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244769

7 years ago* warn_summary: Remove the -java option.
Gerald Pfeifer [Sun, 22 Jan 2017 20:53:48 +0000 (20:53 +0000)]
* warn_summary: Remove the -java option.

From-SVN: r244766

7 years ago* doc/xml/manual/test.xml: Fix link into gccint online manual.
Gerald Pfeifer [Sun, 22 Jan 2017 20:39:06 +0000 (20:39 +0000)]
* doc/xml/manual/test.xml: Fix link into gccint online manual.

From-SVN: r244765

7 years agoinstall.texi (Specific): opensource.apple.com uses https now.
Gerald Pfeifer [Sun, 22 Jan 2017 20:29:34 +0000 (20:29 +0000)]
install.texi (Specific): opensource.apple.com uses https now.

* doc/install.texi (Specific): opensource.apple.com uses https
now. Remove trailing slash.

From-SVN: r244764

7 years agore PR fortran/79154 (omp declare simd in pure function?)
Jakub Jelinek [Sun, 22 Jan 2017 19:36:57 +0000 (20:36 +0100)]
re PR fortran/79154 (omp declare simd in pure function?)

PR fortran/79154
* parse.c (matchs, matcho, matchds, matchdo): Replace return st;
with { ret = st; goto finish; }.
(decode_omp_directive): Allow declare simd, declare target and
simd directives in PURE/ELEMENTAL procedures.  Only call
gfc_unset_implicit_pure on successful match of other procedures.

* gfortran.dg/gomp/pr79154-1.f90: New test.
* gfortran.dg/gomp/pr79154-2.f90: New test.

From-SVN: r244763

7 years ago2017-01-22 Matthias Klose <doko@ubuntu.com>
Matthias Klose [Sun, 22 Jan 2017 18:07:04 +0000 (18:07 +0000)]
2017-01-22  Matthias Klose  <doko@ubuntu.com>

        * Import zlib 1.2.11.
        * configure: Regenerate.

Changes in 1.2.11 (15 Jan 2017)
- Fix deflate stored bug when pulling last block from window
- Permit immediate deflateParams changes before any deflate input

From-SVN: r244762

7 years ago* README.Portability: Remove note on an Irix compatibility issue.
Gerald Pfeifer [Sun, 22 Jan 2017 15:52:02 +0000 (15:52 +0000)]
* README.Portability: Remove note on an Irix compatibility issue.

From-SVN: r244759

7 years agogcov.c (INCLUDE_ALGORITHM): Define.
Dimitry Andric [Sun, 22 Jan 2017 15:48:21 +0000 (15:48 +0000)]
gcov.c (INCLUDE_ALGORITHM): Define.

* gcov.c (INCLUDE_ALGORITHM): Define.
(INCLUDE_VECTOR): Define.
No longer include <vector> and <algorithm> directly.

From-SVN: r244758

7 years ago* gcc.dg/tree-ssa/pr77445-2.c: Quote brackets.
Andreas Schwab [Sun, 22 Jan 2017 12:46:39 +0000 (12:46 +0000)]
* gcc.dg/tree-ssa/pr77445-2.c: Quote brackets.

From-SVN: r244757

7 years agoDaily bump.
GCC Administrator [Sun, 22 Jan 2017 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244756

7 years agoextend.texi (Thread-Local): Change www.akkadia.org reference to https.
Gerald Pfeifer [Sat, 21 Jan 2017 21:53:32 +0000 (21:53 +0000)]
extend.texi (Thread-Local): Change akkadia.org reference to https.

* doc/extend.texi (Thread-Local): Change www.akkadia.org reference
to https.
* doc/invoke.texi (Code Gen Options): Ditto.

From-SVN: r244751

7 years agogfc-internals.texi (Symbol Versioning): Change references to www.akkadia.org to https.
Gerald Pfeifer [Sat, 21 Jan 2017 20:37:01 +0000 (20:37 +0000)]
gfc-internals.texi (Symbol Versioning): Change references to akkadia.org to https.

* gfc-internals.texi (Symbol Versioning): Change references
to www.akkadia.org to https.

From-SVN: r244750

7 years agore PR lto/78407 (LTO breaks separate overriding of symbol aliases)
Jan Hubicka [Sat, 21 Jan 2017 19:36:01 +0000 (20:36 +0100)]
re PR lto/78407 (LTO breaks separate overriding of symbol aliases)

PR lto/78407
* cfg.c (update_bb_profile_for_threading): Fix updating of probablity.

From-SVN: r244749

7 years agoMake poisoned hashes SFINAE away the call operator of the hash.
Ville Voutilainen [Sat, 21 Jan 2017 15:38:23 +0000 (17:38 +0200)]
Make poisoned hashes SFINAE away the call operator of the hash.

* include/bits/functional_hash.h
(__poison_hash::__enable_hash_call): New.
* include/std/optional (__optional_hash_call_base): New.
(hash<optional<_Tp>>): Derive from the new base,
move the hash function into that base.
* include/std/variant (__variant_hash_call_base_impl): New.
(__variant_hash_call_base): Likewise.
(hash<variant<_Types...>>): Derive from the new base,
move the hash function into that base.
* testsuite/20_util/optional/hash.cc: Add tests for is_callable.
* testsuite/20_util/variant/hash.cc: Likewise.

From-SVN: r244748

7 years agore PR testsuite/79169 (g++.dg/warn/Wduplicated-branches1.C fails on powerpc since...
Marek Polacek [Sat, 21 Jan 2017 12:00:40 +0000 (12:00 +0000)]
re PR testsuite/79169 (g++.dg/warn/Wduplicated-branches1.C fails on powerpc since its introduction in r244705)

PR testsuite/79169
* g++.dg/warn/Wduplicated-branches1.C: Use signed char.

From-SVN: r244747

7 years ago* gcc.dg/tree-ssa/pr77445-2.c: Adjust template.
Jan Hubicka [Sat, 21 Jan 2017 11:33:44 +0000 (12:33 +0100)]
* gcc.dg/tree-ssa/pr77445-2.c: Adjust template.

From-SVN: r244746

7 years agosem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc) optimizations...
Eric Botcazou [Sat, 21 Jan 2017 11:10:00 +0000 (11:10 +0000)]
sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc) optimizations when...

* sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc)
optimizations when the type is modular and the offsets are equal.

From-SVN: r244745

7 years agogfortran.h (gfc_extract_int): Change return type to bool.
Jakub Jelinek [Sat, 21 Jan 2017 10:30:54 +0000 (11:30 +0100)]
gfortran.h (gfc_extract_int): Change return type to bool.

* gfortran.h (gfc_extract_int): Change return type to bool.  Add
int argument with = 0.
* decl.c (gfc_match_kind_spec): Adjust gfc_extract_int caller, pass
1 as new last argument to it, don't emit gfc_error.
(match_char_kind): Likewise.
(gfc_match_decl_type_spec): Use gfc_get_string ("%s", x) instead of
gfc_get_string (x).
(gfc_match_derived_decl, match_binding_attributes): Likewise.
(gfc_match_structure_decl): Don't sprintf back to name, call
get_struct_decl directly with gfc_dt_upper_string (name) result.
* trans-stmt.c (gfc_trans_allocate): Use gfc_get_string ("%s", x)
instead of gfc_get_string (x).
* module.c (gfc_dt_lower_string, gfc_dt_upper_string,
gfc_match_use, gfc_match_submodule, find_true_name, mio_pool_string,
mio_symtree_ref, mio_expr, mio_omp_udr_expr, load_generic_interfaces,
load_omp_udrs, load_needed, read_module, dump_module,
create_intrinsic_function, import_iso_c_binding_module,
create_int_parameter, create_int_parameter_array, create_derived_type,
use_iso_fortran_env_module): Likewise.
* error.c (gfc_diagnostic_starter, gfc_diagnostic_start_span): Use
pp_verbatim (context->printer, "%s", x) instead of
pp_verbatim (context->printer, x).
* match.c (gfc_match_small_int): Adjust gfc_extract_int caller, pass
1 as new last argument to it, don't emit gfc_error.
(gfc_match_small_int_expr): Likewise.
* iresolve.c (gfc_get_string): Optimize format "%s" case.
(resolve_bound): Use gfc_get_string ("%s", x) instead of
gfc_get_string (x).
(resolve_transformational): Formatting fix.
(gfc_resolve_char_achar): Change name argument to bool is_achar,
use a single format string and if is_achar add "a" before "char".
(gfc_resolve_achar, gfc_resolve_char): Adjust callers.
* expr.c (gfc_extract_int): Change return type to bool, return true
if some error occurred.  Add REPORT_ERROR argument, if non-zero
call either gfc_error or gfc_error_now depending on its sign.
* arith.c (arith_power): Adjust gfc_extract_int caller.
* symbol.c (gfc_add_component): Use gfc_get_string ("%s", x) instead
of gfc_get_string (x).
(gfc_new_symtree, gfc_delete_symtree, gfc_get_uop, gfc_new_symbol,
gfc_get_gsymbol, generate_isocbinding_symbol): Likewise.
* openmp.c (gfc_match_omp_clauses): Adjust gfc_extract_int caller, pass
-1 as new last argument to it, don't emit gfc_error_now.
(gfc_match_omp_declare_reduction): Use gfc_get_string ("%s", x)
instead of gfc_get_string (x).
* check.c (kind_check): Adjust gfc_extract_int caller.
* intrinsic.c (add_sym, find_sym, make_alias): Use
gfc_get_string ("%s", x) instead of gfc_get_string (x).
* simplify.c (get_kind, gfc_simplify_btest, gfc_simplify_maskr,
gfc_simplify_maskl, gfc_simplify_poppar, gfc_simplify_repeat,
gfc_simplify_selected_int_kind, gfc_simplify_selected_real_kind):
Adjust gfc_extract_int callers.
* trans-decl.c (gfc_find_module): Use gfc_get_string ("%s", x)
instead of gfc_get_string (x).
* matchexp.c (expression_syntax): Add const.
* primary.c (match_kind_param, match_hollerith_constant,
match_string_constant): Adjust gfc_extract_int callers.
(match_keyword_arg): Use gfc_get_string ("%s", x) instead of
gfc_get_string (x).
* frontend-passes.c (optimize_minmaxloc): Likewise.

From-SVN: r244744

7 years ago* config/i386/cygming-crtbegin.c (LIBGCJ_SONAME): No longer #define.
Gerald Pfeifer [Sat, 21 Jan 2017 08:52:32 +0000 (08:52 +0000)]
* config/i386/cygming-crtbegin.c (LIBGCJ_SONAME): No longer #define.

From-SVN: r244743

7 years agore PR other/79046 (g++ -print-file-name=plugin uses full version number in path)
Jakub Jelinek [Sat, 21 Jan 2017 08:47:11 +0000 (09:47 +0100)]
re PR other/79046 (g++ -print-file-name=plugin uses full version number in path)

PR other/79046
libatomic/
* testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* testsuite/Makefile.in: Regenerated.
libffi/
* configure.ac: Add GCC_BASE_VER.
* include/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* configure: Regenerated.
* testsuite/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* Makefile.in: Regenerated.
* man/Makefile.in: Regenerated.
libgomp/
* testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* testsuite/Makefile.in: Regenerated.
libitm/
* testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* testsuite/Makefile.in: Regenerated.
libmpx/
* mpxrt/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* mpxwrap/Makefile.am (gcc_version): Likewise.
* mpxrt/Makefile.in: Regenerated.
* mpxwrap/Makefile.in: Regenerated.
liboffloadmic/
* plugin/configure.ac: Add GCC_BASE_VER.
* plugin/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* plugin/configure: Regenerated.
* plugin/aclocal.m4: Regenerated.
* plugin/Makefile.in: Regenerated.
libsanitizer/
* interception/Makefile.am (gcc_version): Use @get_gcc_base_ver@
instead of cat to get version from BASE-VER file.
* asan/Makefile.am (gcc_version): Likewise.
* ubsan/Makefile.am (gcc_version): Likewise.
* sanitizer_common/Makefile.am (gcc_version): Likewise.
* lsan/Makefile.am (gcc_version): Likewise.
* tsan/Makefile.am (gcc_version): Likewise.
* interception/Makefile.in: Regenerated.
* asan/Makefile.in: Regenerated.
* ubsan/Makefile.in: Regenerated.
* sanitizer_common/Makefile.in: Regenerated.
* lsan/Makefile.in: Regenerated.
* tsan/Makefile.in: Regenerated.
libvtv/
* testsuite/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
of cat to get version from BASE-VER file.
* testsuite/Makefile.in: Regenerated.

From-SVN: r244742

7 years agore PR rtl-optimization/79125 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2661 (error...
Bernd Schmidt [Sat, 21 Jan 2017 07:23:47 +0000 (00:23 -0700)]
re PR rtl-optimization/79125 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2661 (error: flow control insn inside a basic block))

2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>

rtl-optimization/79125
* cprop.c (local_cprop_pass): Handle cases where we make an
unconditional trap.

PR rtl-optimization/79125
* gcc.dg/torture/pr79125.c: New test.

From-SVN: r244741

7 years agors6000: Small varargs for BE SVR4 (PR61729, PR77850)
Segher Boessenkool [Sat, 21 Jan 2017 03:11:49 +0000 (04:11 +0100)]
rs6000: Small varargs for BE SVR4 (PR61729, PR77850)

The varargs code for SVR4 puts all (integer) arguments in 4-byte slots.
When it then reads an item from there as something not a multiple of 4
bytes, it needs to adjust the address if big endian.  We didn't yet do
that.

This fixes the g++.dg/abi/scoped1.C, gcc.dg/compat/scalar-by-value-4,
and gcc.dg/compat/scalar-return-4 testcases.

PR target/61729
PR target/77850
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
read from, for big endian.

From-SVN: r244740

7 years agoDaily bump.
GCC Administrator [Sat, 21 Jan 2017 00:16:25 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r244739

7 years agoruntime, testing/internal/testdeps: fixes for cgo
Ian Lance Taylor [Fri, 20 Jan 2017 21:18:37 +0000 (21:18 +0000)]
runtime, testing/internal/testdeps: fixes for cgo

    Some fixes that permit misc/cgo/test in the master gc repository to
    pass using the current gccgo.

    Install testing/internal/testdeps.gox; it is needed by `go test`.

    Export runtime.lockedOSThread to enable calling via go:linkname; it is
    used by misc/cgo/test.

    Loop on EAGAIN when creating a new thread; this is what the gc code
    does, and misc/cgo/test tests that it works.

    Reviewed-on: https://go-review.googlesource.com/35479

From-SVN: r244733

7 years ago[AArch64] Only build & test pauth code for LP64
Jiong Wang [Fri, 20 Jan 2017 21:03:41 +0000 (21:03 +0000)]
[AArch64] Only build & test pauth code for LP64

gcc/
* config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
register pauth builtins for LP64 only.

libgcc/
* config/aarch64/aarch64-unwind.h: Empty this file on ILP32.
* unwind-dw2.c (execute_cfa_program):  Only multiplexing
DW_CFA_GNU_window_save for AArch64 and LP64.

gcc/testsuite/
* testsuite/gcc.target/aarch64/return_address_sign_1.c: Enable on LP64
only.
* testsuite/gcc.target/aarch64/return_address_sign_2.c: Likewise.
* testsuite/gcc.target/aarch64/return_address_sign_3.c: Likewise.

From-SVN: r244732

7 years agore PR go/79146 (Bootstrapping go on s390x fails; redefined symbols)
Ian Lance Taylor [Fri, 20 Jan 2017 20:39:10 +0000 (20:39 +0000)]
re PR go/79146 (Bootstrapping go on s390x fails; redefined symbols)

PR go/79146
    math/big: fix build on s390x

    Don't build arith_decl_s390x.go for gccgo; it is only for assembly
    code that has not yet been ported to gccgo.

    For GCC PR 79146.

From-SVN: r244731

7 years agoPR c++/78495 - wrong code inherited ctor and invisi-ref parm
Nathan Sidwell [Fri, 20 Jan 2017 17:53:44 +0000 (17:53 +0000)]
PR c++/78495 - wrong code inherited ctor and invisi-ref parm

PR c++/78495 - wrong code inherited ctor and invisi-ref parm
* cp-gimplify.c (cp_generize_r): Don't skip thunks.

PR c++/79495
* g++.dg/cpp1z/inh-ctor38.C: New.

From-SVN: r244728

7 years agoSupport unsigned __int20 in checks for size_t mangling
Joe Seymour [Fri, 20 Jan 2017 17:46:36 +0000 (17:46 +0000)]
Support unsigned __int20 in checks for size_t mangling

2017-01-20  Joe Seymour  <joe.s@somniumtech.com>

* acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t.
* configure: Regenerate.

From-SVN: r244727

7 years agore PR c/79152 (-Wimplicit-fallthrough false positive triggered by goto statements)
Marek Polacek [Fri, 20 Jan 2017 16:28:16 +0000 (16:28 +0000)]
re PR c/79152 (-Wimplicit-fallthrough false positive triggered by goto statements)

PR c/79152
* gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
non-case labels.

* c-c++-common/Wimplicit-fallthrough-35.c: New test.

From-SVN: r244726

7 years agoRemove orphaned entries
Eric Botcazou [Fri, 20 Jan 2017 15:55:15 +0000 (15:55 +0000)]
Remove orphaned entries

From-SVN: r244725

7 years agoSkip optional_mthumb tests if GCC has a default mode
Thomas Preud'homme [Fri, 20 Jan 2017 15:29:21 +0000 (15:29 +0000)]
Skip optional_mthumb tests if GCC has a default mode

2017-01-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * lib/target-supports.exp (check_configured_with): New procedure.
    (check_effective_target_default_mode): new effective target.
    * gcc.target/arm/optional_thumb-1.c: Skip if GCC was configured with a
    default mode.  Fix dg-skip-if target selector syntax.
    * gcc.target/arm/optional_thumb-2.c: Likewise.
    * gcc.target/arm/optional_thumb-3.c: Fix dg-skip-if target selector
    syntax.

From-SVN: r244723

7 years agoPR69240 Define inequality operators for <random> param types
Jonathan Wakely [Fri, 20 Jan 2017 15:28:48 +0000 (15:28 +0000)]
PR69240 Define inequality operators for <random> param types

PR libstdc++/69240
* include/bits/random.h (uniform_real_distribution::param_type)
(normal_distribution::param_type, lognormal_distribution::param_type)
(gamma_distribution::param_type, chi_squared_distribution::param_type)
(cauchy_distribution::param_type, fisher_f_distribution::param_type)
(student_t_distribution::param_type)
(bernoulli_distribution::param_type, binomial_distribution::param_type)
(geometric_distribution::param_type)
(negative_binomial_distribution::param_type)
(poisson_distribution::param_type)
(exponential_distribution::param_type)
(weibull_distribution::param_type)
(extreme_value_distribution::param_type)
(discrete_distribution::param_type)
(piecewise_constant_distribution::param_type)
(piecewise_linear_distribution::param_type): Define operator!=.
* include/bits/uniform_int_dist.h
(uniform_int_distribution::param_type): Likewise.
* include/ext/random (beta_distribution::param_type)
(rice_distribution::param_type, nakagami_distribution::param_type)
(pareto_distribution::param_type, k_distribution::param_type)
(arcsine_distribution::param_type, hoyt_distribution::param_type)
(triangular_distribution::param_type)
(von_mises_distribution::param_type)
(hypergeometric_distribution::param_type)
(logistic_distribution::param_type)
(uniform_on_sphere_distribution::param_type)
(uniform_inside_sphere_distribution::param_type): Likewise.
* testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc:
Test construction with param_type.
* testsuite/26_numerics/random/binomial_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/extreme_value_distribution/cons/
parms.cc: Likewise.
* testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/gamma_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/geometric_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/negative_binomial_distribution/cons/
parms.cc: Likewise.
* testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/poisson_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/weibull_distribution/cons/parms.cc:
Likewise.
* testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/hypergeometric_distribution/cons/parms.cc:
Likewise.
* testsuite/ext/random/k_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/triangular_distribution/cons/parms.cc:
Likewise.
* testsuite/ext/random/uniform_inside_sphere_distribution/cons/
parms.cc: Likewise.
* testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise.

From-SVN: r244722

7 years ago[multiple changes]
Arnaud Charlet [Fri, 20 Jan 2017 14:51:39 +0000 (15:51 +0100)]
[multiple changes]

2017-01-20  Thomas Quinot  <quinot@adacore.com>

* sem_warn.adb (Warn_On_Useless_Assignment): Adjust wording of warning
message.

2017-01-20  Nicolas Roche  <roche@adacore.com>

* terminals.c: Ignore failures on setpgid and tcsetpgrp commands.

2017-01-20  Bob Duff  <duff@adacore.com>

* sem_eval.adb (Compile_Time_Compare): Disable the expr+literal
(etc) optimizations when the type is modular.

2017-01-20  Yannick Moy  <moy@adacore.com>

* sem_ch6.adb (Move_Pragmas): move some pragmas,
but copy the SPARK_Mode pragma instead of moving it.
(Build_Subprogram_Declaration): Ensure that the generated spec
and original body share the same SPARK_Pragma aspect/pragma.
* sem_util.adb, sem_util.ads (Copy_SPARK_Mode_Aspect): New
procedure to copy SPARK_Mode aspect.

2017-01-20  Bob Duff  <duff@adacore.com>

* sem_ch3.adb (Analyze_Declarations): Disable Resolve_Aspects
even in ASIS mode.
* sem_ch13.adb (Resolve_Name): Enable setting the entity to
Empty even in ASIS mode.

From-SVN: r244720

7 years ago* update-copyright.py (LibJavaFilter): Remove.
Gerald Pfeifer [Fri, 20 Jan 2017 14:50:19 +0000 (14:50 +0000)]
* update-copyright.py (LibJavaFilter): Remove.

From-SVN: r244719

7 years ago[multiple changes]
Arnaud Charlet [Fri, 20 Jan 2017 14:49:28 +0000 (15:49 +0100)]
[multiple changes]

2017-01-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch9.adb: minor style fixes in comments.
* sem_ch9.adb (Analyze_Delay_Relative): in GNATprove mode a delay
relative statement introduces an implicit dependency on
Ada.Real_Time.Clock_Time.
* sem_util.adb: Minor reformatting.

2017-01-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Alignment
must be treated as delayed aspect even if the expression is
a literal, because the aspect affects the freezing and the
elaboration of the object to which it applies.

2017-01-20  Tristan Gingold  <gingold@adacore.com>

* s-osinte-vxworks.ads (Interrup_Range): New subtype.

2017-01-20  Ed Schonberg  <schonberg@adacore.com>

* lib-xref.adb (Generate_Reference): Do not warn about the
presence of a pragma Unreferenced if the entity appears as the
actual in a procedure call that does not come from source.

2017-01-20  Pascal Obry  <obry@adacore.com>

* expect.c, terminals.c: Fix some warnings about unused variables.
* gsocket.h, adaint.c, adaint.h: Fix some more warnings in the C part
of the runtime.

2017-01-20  Bob Duff  <duff@adacore.com>

* exp_attr.adb (Constrained): Apply an access check (check that
the prefix is not null) when the prefix denotes an object of an
access type; that is, when there is an implicit dereference.

2017-01-20  Gary Dismukes  <dismukes@adacore.com>

* s-rident.ads (constant Profile_Info): Remove
No_Calendar from GNAT_Extended_Ravenscar restrictions.

2017-01-20  Tristan Gingold  <gingold@adacore.com>

*  s-maccod.ads: Add pragma No_Elaboration_Code_All

From-SVN: r244718

7 years agoomp-offload: use PROP_gimple_lomp_dev
Alexander Monakov [Fri, 20 Jan 2017 14:38:18 +0000 (17:38 +0300)]
omp-offload: use PROP_gimple_lomp_dev

* omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
of safelen status.
* omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
* passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
* tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.

From-SVN: r244717

7 years ago[ARM] PR target/71270 fix neon_valid_immediate for big-endian
Kyrylo Tkachov [Fri, 20 Jan 2017 14:36:57 +0000 (14:36 +0000)]
[ARM] PR target/71270 fix neon_valid_immediate for big-endian

PR target/71270
* config/arm/arm.c (neon_valid_immediate): Reject vector constants
in big-endian mode when they are not a single duplicated value.

From-SVN: r244716

7 years agoC++: fix fix-it hints for misspellings within explicit namespaces
David Malcolm [Fri, 20 Jan 2017 14:36:46 +0000 (14:36 +0000)]
C++: fix fix-it hints for misspellings within explicit namespaces

gcc/cp/ChangeLog:
PR c++/77829
PR c++/78656
* cp-tree.h (suggest_alternatives_for): Add bool param.
(suggest_alternative_in_explicit_scope): New decl.
* error.c (qualified_name_lookup_error): When SCOPE is a namespace
that isn't the global one, call new function
suggest_alternative_in_explicit_scope, only calling
suggest_alternatives_for if it fails, and disabling near match
searches fort that case.  When SCOPE is the global namespace,
pass true for new param to suggest_alternatives_for to allow for
fuzzy name lookups.
* lex.c (unqualified_name_lookup_error): Pass true for new param
to suggest_alternatives_for.
* name-lookup.c (consider_binding_level): Add forward decl.
(suggest_alternatives_for): Add "suggest_misspellings" param,
using it to conditionalize the fuzzy name-lookup code.
(suggest_alternative_in_explicit_scope): New function.
* parser.c (cp_parser_primary_expression): When calling
finish_id_expression, pass location of id_expression rather
than that of id_expr_token.
(cp_parser_id_expression): Convert local "unqualified_id" from
tree to cp_expr to avoid implicitly dropping location information.

gcc/testsuite/ChangeLog:
PR c++/77829
PR c++/78656
* g++.dg/spellcheck-pr77829.C: New test case.
* g++.dg/spellcheck-pr78656.C: New test case.

From-SVN: r244715

7 years agoBASE-VER: Bump to 7.0.1.
Richard Biener [Fri, 20 Jan 2017 14:05:48 +0000 (14:05 +0000)]
BASE-VER: Bump to 7.0.1.

2017-01-20  Richard Biener  <rguenther@suse.de>

* BASE-VER: Bump to 7.0.1.

From-SVN: r244714

7 years agoomp-low: introduce omplow_simd_context
Alexander Monakov [Fri, 20 Jan 2017 14:04:06 +0000 (17:04 +0300)]
omp-low: introduce omplow_simd_context

* omp-low.c (omplow_simd_context): New struct.  Use it...
(lower_rec_simd_input_clauses): ...here and...
(lower_rec_input_clauses): ...here to hold common data.  Adjust all
references to idx, lane, max_vf, is_simt.

From-SVN: r244713

7 years agoarc/nps: Use arclinux_nps linker emulation for nps
Graham Markall [Fri, 20 Jan 2017 13:37:28 +0000 (13:37 +0000)]
arc/nps: Use arclinux_nps linker emulation for nps

gcc/ChangeLog:

* config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
mcpu=nps400.

From-SVN: r244712

7 years ago[hsa] Rename hsa.[ch] to hsa-common.[ch]
Martin Jambor [Fri, 20 Jan 2017 13:33:29 +0000 (14:33 +0100)]
[hsa] Rename hsa.[ch] to hsa-common.[ch]

2017-01-20  Martin Jambor  <mjambor@suse.cz>

        * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
        * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
        gt-hsa-common.h.
        * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
        (GTFILES): Rename hsa.c to hsa-common.c.
        * hsa-brig.c: Change include of hsa.h to hsa-common.h.
        * hsa-dump.c: Likewise.
        * hsa-gen.c: Likewise.
        * hsa-regalloc.c: Likewise.
        * ipa-hsa.c: Likewise.
        * omp-expand.c: Likewise.
        * omp-low.c: Likewise.
        * toplev.c: Likewise.

From-SVN: r244711

7 years ago[AArch64] Always include linux-unwind.h
Jiong Wang [Fri, 20 Jan 2017 12:27:46 +0000 (12:27 +0000)]
[AArch64] Always include linux-unwind.h

libgcc/
        * config/aarch64/linux-unwind.h: Always include aarch64-unwind.h.

From-SVN: r244710

7 years agoPR72792 detect allocator pointer types without invalid rebinding
Jonathan Wakely [Fri, 20 Jan 2017 12:03:36 +0000 (12:03 +0000)]
PR72792 detect allocator pointer types without invalid rebinding

PR libstdc++/72792
* include/bits/alloc_traits.h (__allocator_traits_base::__diff_type)
(__allocator_traits_base::__size_type): Remove.
(allocator_traits::_Ptr): New class template to detect const and void
pointer types without instantiating pointer_traits::rebind
unnecessarily.
(allocator_traits::_Diff): Likewise for detecting difference_type.
(allocator_traits::_Size): New class template to detect size_type
without instantiating make_unsigned unnecessarily.
* include/bits/ptr_traits.h (pointer_traits::element_type): Use
__detected_or_t instead of __detected_or_t_.
* include/std/type_traits (__detected_or_t_): Remove.
* testsuite/20_util/allocator_traits/members/pointers.cc: New test.

From-SVN: r244706

7 years agore PR c/64279 (Warning missing for "(cond) ? A : A" / if(cond) expr1; else expr1...
Marek Polacek [Fri, 20 Jan 2017 12:02:50 +0000 (12:02 +0000)]
re PR c/64279 (Warning missing for "(cond) ? A : A" / if(cond) expr1; else expr1; // same expression in if and else branch)

PR c/64279
* c-common.h (do_warn_duplicated_branches_r): Declare.
* c-gimplify.c (c_genericize): Walk the function tree calling
do_warn_duplicated_branches_r.
* c-warn.c (expr_from_macro_expansion_r): New.
(do_warn_duplicated_branches): New.
(do_warn_duplicated_branches_r): New.
* c.opt (Wduplicated-branches): New option.

* c-typeck.c (build_conditional_expr): Warn about duplicated branches.

* call.c (build_conditional_expr_1): Warn about duplicated branches.
* semantics.c (finish_expr_stmt): Build statement using the proper
location.

* doc/invoke.texi: Document -Wduplicated-branches.
* fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
return 0 only when not OEP_LEXICOGRAPHIC.
(fold_build_cleanup_point_expr): Use the expression
location when building CLEANUP_POINT_EXPR.
* tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
* tree.c (add_expr): Handle error_mark_node.

* c-c++-common/Wduplicated-branches-1.c: New test.
* c-c++-common/Wduplicated-branches-10.c: New test.
* c-c++-common/Wduplicated-branches-11.c: New test.
* c-c++-common/Wduplicated-branches-12.c: New test.
* c-c++-common/Wduplicated-branches-2.c: New test.
* c-c++-common/Wduplicated-branches-3.c: New test.
* c-c++-common/Wduplicated-branches-4.c: New test.
* c-c++-common/Wduplicated-branches-5.c: New test.
* c-c++-common/Wduplicated-branches-6.c: New test.
* c-c++-common/Wduplicated-branches-7.c: New test.
* c-c++-common/Wduplicated-branches-8.c: New test.
* c-c++-common/Wduplicated-branches-9.c: New test.
* c-c++-common/Wimplicit-fallthrough-7.c: Coalesce dg-warning.
* g++.dg/cpp0x/lambda/lambda-switch.C: Move dg-warning.
* g++.dg/ext/builtin-object-size3.C: Likewise.
* g++.dg/gomp/loop-1.C: Likewise.
* g++.dg/warn/Wduplicated-branches1.C: New test.
* g++.dg/warn/Wduplicated-branches2.C: New test.

From-SVN: r244705

7 years ago[multiple changes]
Arnaud Charlet [Fri, 20 Jan 2017 11:55:04 +0000 (12:55 +0100)]
[multiple changes]

2017-01-20  Hristian Kirtchev  <kirtchev@adacore.com>

* ghost.adb (Mark_Ghost_Clause): New routine.
(Prune_Node): Do not prune compilation unit nodes.
(Remove_Ignored_Ghost_Code): Prune the compilation unit node directly.
This does not touch the node itself, but does prune all its fields.
* ghost.ads (Mark_Ghost_Clause): New routine.
* sem_ch8.adb (Analyze_Use_Package): Emit an error when a use
package clause mentions Ghost and non-Ghost packages. Mark a
use package clause as Ghost when it mentions a Ghost package.
(Analyze_Use_Type): Emit an error when a use type clause mentions
Ghost and non-Ghost types. Mark a use type clause as Ghost when
it mentions a Ghost type.
* sem_ch10.adb (Analyze_With_Clause): Mark a with clause as
Ghost when it withs a Ghost unit.

2017-01-20  Javier Miranda  <miranda@adacore.com>

* sem_res.adb (Resolve_Call): If a function call
returns a limited view of a type and at the point of the call the
function is not declared in the extended main unit then replace
it with the non-limited view, which must be available. If the
called function is in the extended main unit then no action is
needed since the back-end handles this case.

2017-01-20  Eric Botcazou  <ebotcazou@adacore.com>

* sem_ch7.adb (Contains_Subp_Or_Const_Refs): Rename into...
(Contains_Subprograms_Refs): ...this.  Adjust comment
for constants. (Is_Subp_Or_Const_Ref): Rename into...
(Is_Subprogram_Ref): ...this.
(Has_Referencer): Rename Has_Non_Subp_Const_Referencer variable into
Has_Non_Subprograms_Referencer and adjust comment.  Remove
incorrect shortcut for package declarations and bodies.

2017-01-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Complete_Private_Subtype): If the scope of the
base type differs from that of the completion and the private
subtype is an itype (created for a constraint on an access
type e.g.), set Delayed_Freeze on both to prevent out-of-scope
anomalies in gigi.

2017-01-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
When inheriting the SPARK_Mode of a prior expression function,
look at the properly resolved entity rather than the initial
candidate which may denote a homonym.

2017-01-20  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Rewrite_Assertion_Kind): If the name is
Precondition or Postcondition, and the context is pragma
Check_Policy, indicate that this Pre-Ada2012 usage is deprecated
and suggest the standard names Assertion_Policy /Pre /Post
instead.

From-SVN: r244704

7 years agosem_ch10.adb, [...]: Minor reformatting.
Hristian Kirtchev [Fri, 20 Jan 2017 11:51:36 +0000 (11:51 +0000)]
sem_ch10.adb, [...]: Minor reformatting.

2017-01-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch10.adb, sem_cat.adb: Minor reformatting.

From-SVN: r244703

7 years ago[multiple changes]
Arnaud Charlet [Fri, 20 Jan 2017 10:42:43 +0000 (11:42 +0100)]
[multiple changes]

2017-01-20  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Access_Type_Declaration): Protect access to the
Entity attribute.
* sem_ch10.adb (Install_Siblings): Skip processing malformed trees.
* sem_cat.adb (Validate_Categoriztion_Dependency): Skip processing
malformed trees.

2017-01-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Analyze_Aspect_Specification, case
Dynamic_Predicate): If the entity E is a subtype that inherits
a static predicate for its parent P,, the inherited and the
new predicate combine in the generated predicate function,
and E only has a dynamic predicate.

2017-01-20  Tristan Gingold  <gingold@adacore.com>

* s-boustr.ads, s-boustr.adb: New package.
* Makefile.rtl: Add s-boustr.

2017-01-20  Hristian Kirtchev  <kirtchev@adacore.com>

* inline.adb (Process_Formals): Qualify the
expression of a return statement when it yields a universal type.

2017-01-20  Hristian Kirtchev  <kirtchev@adacore.com>

* freeze.adb (Freeze_All): Freeze the default
expressions of all eligible formal parameters that appear in
entries, entry families, and protected subprograms.

From-SVN: r244701

7 years agoMinor reformatting.
Arnaud Charlet [Fri, 20 Jan 2017 10:38:54 +0000 (11:38 +0100)]
Minor reformatting.

From-SVN: r244700