gcc.git
8 years agoadd basic .gitattributes files to notice whitespace issues
Trevor Saunders [Sat, 23 Apr 2016 02:37:43 +0000 (02:37 +0000)]
add basic .gitattributes files to notice whitespace issues

gcc/testsuite/ChangeLog:

2016-04-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* .gitattributes: New file.

/ChangeLog:

2016-04-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* .gitattributes: New file.

From-SVN: r235381

8 years agocmd/go: bring in final version of gccgo pkg-config support
Ian Lance Taylor [Sat, 23 Apr 2016 00:41:03 +0000 (00:41 +0000)]
cmd/go: bring in final version of gccgo pkg-config support

    This updates gccgo to the final version of https://golang.org/cl/18790,
    by Michael Hudson-Doyle.

    Update golang/go#11739.

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

From-SVN: r235380

8 years agoDaily bump.
GCC Administrator [Sat, 23 Apr 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235379

8 years agoAdd myself as maintainer for the PowerPC port
Segher Boessenkool [Fri, 22 Apr 2016 21:18:49 +0000 (23:18 +0200)]
Add myself as maintainer for the PowerPC port

* MAINTAINERS (rs6000/powerpc port): Add myself.

From-SVN: r235373

8 years ago[testsuite] gcc-dg: handle all return values when shouldfail is set
Christophe Lyon [Fri, 22 Apr 2016 19:28:58 +0000 (19:28 +0000)]
[testsuite] gcc-dg: handle all return values when shouldfail is set

2016-04-22  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/gcc-dg.exp (${tool}_load): Add default return value handler.

From-SVN: r235372

8 years ago* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.
Jason Merrill [Fri, 22 Apr 2016 16:16:27 +0000 (12:16 -0400)]
* c-cppbuiltin.c (c_cpp_builtins): Fix __cpp_range_based_for.

From-SVN: r235371

8 years ago* parser.c (cp_parser_perform_range_for_lookup): Decay the array.
Jason Merrill [Fri, 22 Apr 2016 16:16:21 +0000 (12:16 -0400)]
* parser.c (cp_parser_perform_range_for_lookup): Decay the array.

From-SVN: r235370

8 years agosubmodule_14.f08: Add cleanup-submodules.
Dominique d'Humieres [Fri, 22 Apr 2016 13:48:28 +0000 (15:48 +0200)]
submodule_14.f08: Add cleanup-submodules.

2016-04-22  Dominique d'Humieres  <dominiq@lps.ens.fr>

* gfortran.dg/submodule_14.f08: Add cleanup-submodules.
* gfortran.dg/submodule_15.f08: Likewise.

From-SVN: r235367

8 years ago[PATCH 2/2] (header usage fix) include c++ headers in system.h
Szabolcs Nagy [Fri, 22 Apr 2016 11:00:42 +0000 (11:00 +0000)]
[PATCH 2/2] (header usage fix) include c++ headers in system.h

2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

* system.h (list, map, set, vector): Include conditionally.
* auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
* graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
* ipa-icf.c (INCLUDE_LIST): Define.
* config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
* config/sh/sh.c (INCLUDE_VECTOR): Define.
* config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
(INCLUDE_LIST, INCLUDE_VECTOR): Define.
* cp/logic.cc (INCLUDE_LIST): Define.
* fortran/trans-common.c (INCLUDE_MAP): Define.

From-SVN: r235362

8 years ago[PATCH 1/2] (header usage fix) remove unused system header includes
Szabolcs Nagy [Fri, 22 Apr 2016 10:57:56 +0000 (10:57 +0000)]
[PATCH 1/2] (header usage fix) remove unused system header includes

2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>

* auto-profile.c: Remove <string.h> include.
* ipa-icf-gimple.c: Remove <list> include.
* diagnostic.c: Remove <new> include.
* genmatch.c: Likewise.
* pretty-print.c: Likewise.
* toplev.c: Likewise
* c/c-objc-common.c: Likewise.
* cp/error.c: Likewise.
* fortran/error.c: Likewise.

From-SVN: r235361

8 years agolto-streamer-in.c (input_ssa_names): Do not allocate GIMPLE_NOP for all SSA names.
Richard Biener [Fri, 22 Apr 2016 09:05:10 +0000 (09:05 +0000)]
lto-streamer-in.c (input_ssa_names): Do not allocate GIMPLE_NOP for all SSA names.

2016-04-22  Richard Biener  <rguenther@suse.de>

* lto-streamer-in.c (input_ssa_names): Do not allocate
GIMPLE_NOP for all SSA names.
* lto-streamer-out.c (output_ssa_names): Do not output
SSA names that should have been released.

From-SVN: r235360

8 years agore PR tree-optimization/70740 (ICE when compiling the Linux kernel (net/wireless...
Richard Biener [Fri, 22 Apr 2016 06:59:32 +0000 (06:59 +0000)]
re PR tree-optimization/70740 (ICE when compiling the Linux kernel (net/wireless/util.o))

2016-04-22  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70740
* tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
VDEF.

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

From-SVN: r235359

8 years ago* config/m68k/linux-atomic.c: Do not include unistd.h
Waldemar Brodkorb [Fri, 22 Apr 2016 05:43:43 +0000 (05:43 +0000)]
* config/m68k/linux-atomic.c: Do not include unistd.h

From-SVN: r235358

8 years agoDaily bump.
GCC Administrator [Fri, 22 Apr 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235357

8 years agoX86: Fix a typo in call_insn_operand
H.J. Lu [Thu, 21 Apr 2016 22:01:34 +0000 (22:01 +0000)]
X86: Fix a typo in call_insn_operand

r231923 has

 ;; Test for a valid operand for a call instruction.
 ;; Allow constant call address operands in Pmode only.
 (define_special_predicate "call_insn_operand"
   (ior (match_test "constant_call_address_operand
       (op, mode == VOIDmode ? mode : Pmode)")
        (match_operand 0 "call_register_no_elim_operand")
-       (and (not (match_test "TARGET_X32"))
-     (match_operand 0 "memory_operand"))))
+       (ior (and (not (match_test "TARGET_X32"))
+  (match_operand 0 "sibcall_memory_operand"))
                                   ^^^^^^^^^^^^^^^^^^^^^^^ A typo.
+     (and (match_test "TARGET_X32 && Pmode == DImode")
+  (match_operand 0 "GOT_memory_operand")))))

"sibcall_memory_operand" should be "memory_operand".

gcc/

PR target/70750
* config/i386/predicates.md (call_insn_operand): Replace
sibcall_memory_operand with memory_operand.

gcc/testsuite/

PR target/70750
* gcc.target/i386/pr70750-1.c: New test.
* gcc.target/i386/pr70750-2.c: Likewise.

From-SVN: r235353

8 years agovrp: remove redundant has_single_use tests
Patrick Palka [Thu, 21 Apr 2016 21:58:08 +0000 (21:58 +0000)]
vrp: remove redundant has_single_use tests

gcc/ChangeLog:

* tree-vrp.c (register_edge_assert_for_2): Remove redundant
has_single_use() tests.
(register_edge_assert_for_1): Likewise.
(find_assert_locations_1): Check the liveness bitmap instead of
checking has_single_use().

From-SVN: r235352

8 years agoReuse the saved_scope structures allocated by push_to_top_level
Patrick Palka [Thu, 21 Apr 2016 21:55:35 +0000 (21:55 +0000)]
Reuse the saved_scope structures allocated by push_to_top_level

gcc/cp/ChangeLog:

* name-lookup.c (free_saved_scope): New free list of saved_scope
structures.
(push_to_top_level): Attempt to reuse a saved_scope struct
from free_saved_scope instead of allocating a new one each time.
(pop_from_top_level_1): Chain the now-unused saved_scope structure
onto free_saved_scope.

From-SVN: r235351

8 years ago* sv.po: Update.
Joseph Myers [Thu, 21 Apr 2016 20:59:01 +0000 (21:59 +0100)]
* sv.po: Update.

From-SVN: r235349

8 years agore PR c++/70540 (ICE on invalid code in cxx_incomplete_type_diagnostic, at cp/typeck2...
Paolo Carlini [Thu, 21 Apr 2016 19:42:34 +0000 (19:42 +0000)]
re PR c++/70540 (ICE on invalid code in cxx_incomplete_type_diagnostic, at cp/typeck2.c:569)

/cp
2016-04-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70540
* semantics.c (process_outer_var_ref): Unconditionally return
error_mark_node when mark_used returns false.

/testsuite
2016-04-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70540
* g++.dg/cpp0x/auto48.C: New.

From-SVN: r235348

8 years agore PR c++/70513 (ICE on invalid C++ code on x86_64-linux-gnu: Segmentation fault)
Marek Polacek [Thu, 21 Apr 2016 16:52:51 +0000 (16:52 +0000)]
re PR c++/70513 (ICE on invalid C++ code on x86_64-linux-gnu: Segmentation fault)

PR c++/70513
* parser.c (cp_parser_enum_specifier): Check and possibly error for
extra qualification.

* g++.dg/cpp0x/forw_enum12.C: New test.
* g++.dg/cpp0x/forw_enum13.C: New test.

From-SVN: r235347

8 years agoAVX-512. PR target/70728. Use separate constraint for AVX-512BW
Kirill Yukhin [Thu, 21 Apr 2016 15:29:29 +0000 (15:29 +0000)]
AVX-512. PR target/70728. Use separate constraint for AVX-512BW

PR target/70728
gcc/
* gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
Extract AVX-512BW constraint from AVX.
gcc/testsuite/
* gcc.target/i386/pr70728.c: New test.

From-SVN: r235344

8 years agoRegenerate .pot files.
Joseph Myers [Thu, 21 Apr 2016 15:23:29 +0000 (16:23 +0100)]
Regenerate .pot files.

gcc/po:
* gcc.pot: Regenerate.

libcpp/po:
* cpplib.pot: Regenerate.

From-SVN: r235342

8 years agore PR tree-optimization/70725 (Internal compiler error (ICE) on valid code)
Richard Biener [Thu, 21 Apr 2016 14:09:33 +0000 (14:09 +0000)]
re PR tree-optimization/70725 (Internal compiler error (ICE) on valid code)

2016-04-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70725
* tree-if-conv.c (if_convertible_phi_p): Adjust guard
for phi_convertible_by_degenerating_args.
(predicate_all_scalar_phis): Handle single-argument PHIs.

From-SVN: r235341

8 years agolibgomp nvptx plugin: make cuMemFreeHost error non-fatal
Alexander Monakov [Thu, 21 Apr 2016 13:11:47 +0000 (16:11 +0300)]
libgomp nvptx plugin: make cuMemFreeHost error non-fatal

From-SVN: r235339

8 years agoCherry-pick r266868 from upstream.
Maxim Ostapenko [Thu, 21 Apr 2016 12:19:54 +0000 (12:19 +0000)]
Cherry-pick r266868 from upstream.

PR sanitizer/70624
* asan/asan_mac.cc: Cherry pick upstream r266868.

From-SVN: r235338

8 years agore PR middle-end/70747 (ICE on valid code on x86_64-linux-gnu: verify_gimple failed)
Richard Biener [Thu, 21 Apr 2016 11:52:50 +0000 (11:52 +0000)]
re PR middle-end/70747 (ICE on valid code on x86_64-linux-gnu: verify_gimple failed)

2016-04-21  Richard Biener  <rguenther@suse.de>

PR middle-end/70747
* fold-const.c (fold_comparison): Return properly typed
constant boolean.

* gcc.dg/pr70747.c: New testcase.

From-SVN: r235335

8 years agore PR tree-optimization/70715 (SCEV failed to prove no-overflow-ness information...
Bin Cheng [Thu, 21 Apr 2016 11:28:58 +0000 (11:28 +0000)]
re PR tree-optimization/70715 (SCEV failed to prove no-overflow-ness information unsigned loop IV)

PR tree-optimization/70715
* tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
after expanding BASE using expand_simple_operations.

gcc/testsuite/ChangeLog
PR tree-optimization/70715
* gcc.dg/tree-ssa/scev-13.c: New test.

From-SVN: r235333

8 years agomin(-x, -y), min(~x, ~y)
Marc Glisse [Thu, 21 Apr 2016 10:45:11 +0000 (12:45 +0200)]
min(-x, -y), min(~x, ~y)

2016-04-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/minmax-2.c: New testcase.

From-SVN: r235332

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 10:27:54 +0000 (12:27 +0200)]
[multiple changes]

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_prag.adb (Match_Constituent): Treat a constant as a legal
constituent even if it is not to prevent spurious errors.

2016-04-21  Gary Dismukes  <dismukes@adacore.com>

* sem_ch4.adb: Minor typo fixes and reformatting.

2016-04-21  Dmitriy Anisimkov  <anisimko@adacore.com>

* g-calend.ads (No_Time): The same value in any timezone.
* g-socket.adb (Raise_Host_Error): Remove ending
dot from original error message before append colon delimited
host name.

From-SVN: r235331

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 10:25:59 +0000 (12:25 +0200)]
[multiple changes]

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb: Code cleanup.
* sem_ch6.adb: Code cleanup.
(Is_Matching_Limited_View): New routine.
(Matches_Limited_With_View): Reimplemented.
* sem_ch10.adb (Decorate_Type): Code cleanup.

2016-04-21  Doug Rupp  <rupp@adacore.com>

* tracebak.c (PPC ELF): Add macro defs for lynxos178e.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Try_Container_Indexing): If there are overloaded
indexing functions, collect all overloadings of the call firts,
and then transfer them to indexing node, to prevent interleaving
of the set of interpretations of the nodes involved.
* sem_res.adb (Resolve): Suppress cascaded errors that report
ambiguities when one of the actuals in an overloaded generatlized
indexing operation is illegal and has type Any_Type, as is done
for similar cascaded errors in subprogram calls.
(Valid_Tagged_Conversion): Cleanup conversion checks when one
of the types involved is a class-wide subtype.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch12.adb (Load_Parent_Of_Generic): When looking for the
subprogram declaration within a wrapper package, skip pragmas
that may have been generated by aspect specifications on the
generic instance.

2016-04-21  Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb (Component_Not_OK_For_Backend): Generating C
code return True for array identifiers since the backend needs
to initialize such component by means of memcpy().

From-SVN: r235330

8 years agoa-tasatt.adb, [...] (Fast_Path): Rewritten to avoid reading potentially uninitialized...
Arnaud Charlet [Thu, 21 Apr 2016 10:21:56 +0000 (10:21 +0000)]
a-tasatt.adb, [...] (Fast_Path): Rewritten to avoid reading potentially uninitialized memory.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* a-tasatt.adb, a-tasatt.ads (Fast_Path): Rewritten to avoid reading
potentially uninitialized memory.
* sem_ch3.adb: Minor style fix in comment.

From-SVN: r235329

8 years agognat_rm.texi, [...]: Update doc.
Arnaud Charlet [Thu, 21 Apr 2016 10:06:40 +0000 (10:06 +0000)]
gnat_rm.texi, [...]: Update doc.

        * gnat_rm.texi, gnat_ugn.texi,
        doc/gnat_ugn/gnat_project_manager.rst,
        doc/gnat_ugn/building_executable_programs_with_gnat.rst,
        doc/gnat_ugn/gnat_and_program_execution.rst,
        doc/gnat_ugn/gnat_utility_programs.rst,
        doc/gnat_ugn/the_gnat_compilation_model.rst,
        doc/gnat_rm/implementation_defined_attributes.rst,
        doc/gnat_rm/standard_and_implementation_defined_restrictions.rst,
        doc/gnat_rm/implementation_defined_pragmas.rst,
        doc/gnat_rm/the_gnat_library.rst,
        doc/gnat_rm/implementation_defined_aspects.rst: Update doc.
        * doc/Makefile: Cleanups.

From-SVN: r235328

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 09:54:42 +0000 (11:54 +0200)]
[multiple changes]

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_pakd.adb, sem_ch13.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* exp_dbug.adb, exp_dbug.ads (Qualify_Entity_Name): Add suffixes to
disambiguate local variables that may be hidden from inner visibility
by nested block declarations or loop variables.

From-SVN: r235327

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 09:46:18 +0000 (11:46 +0200)]
[multiple changes]

2016-04-21  Jerome Lambourg  <lambourg@adacore.com>

* s-soflin.adb: Initialize the Stack_Limit global variable.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-writ.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* exp_pakd.adb (Compute_Number_Components): New function to
build an expression that computes the number of a components of
an array that may be multidimensional.
(Expan_Packed_Eq): Use it.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* g-traceb.ads: Update list of supported platforms.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Add_Predicates): if the type is declared in
an inner package it may be frozen outside of the package, and
the generated pragma has not been analyzed yet, the expression
for the predicate must be captured and added to the predicate
function at this point.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* contracts.adb (Analyze_Package_Body_Contract): Do not check
for a missing package refinement because 1) packages do not have
"refinement" and 2) the check for proper state refinement is
performed in a different place.
* einfo.adb (Has_Non_Null_Visible_Refinement): Reimplemented.
(Has_Null_Visible_Refinement): Reimplemented.
* sem_ch3.adb (Analyze_Declarations): Determine whether all
abstract states have received a refinement and if not, emit
errors.
* sem_ch7.adb (Analyze_Package_Declaration): Code
cleanup. Determine whether all abstract states of the
package and any nested packages have received a refinement
and if not, emit errors.
(Requires_Completion_In_Body): Add new formal parameter
Do_Abstract_States. Update the comment on usage. Propagate the
Do_Abstract_States flag to all Unit_Requires_Body calls.
(Unit_Requires_Body): Remove formal
parameter Ignore_Abstract_States. Add new formal paramter
Do_Abstract_States. Propagate the Do_Abstract_States flag to
all Requires_Completion_In calls.
* sem_ch7.ads (Unit_Requires_Body): Remove formal
parameter Ignore_Abstract_States. Add new formal paramter
Do_Abstract_States. Update the comment on usage.
* sem_ch9.adb (Analyze_Single_Protected_Declaration): Do
not initialize the constituent list as this is now done on a
need-to-add-element basis.
(Analyze_Single_Task_Declaration):
Do not initialize the constituent list as this is now done on
a need-to-add-element basis.
* sem_ch10.adb (Decorate_State): Do not initialize the constituent
lists as this is now done on a need-to-add-element basis.
* sem_prag.adb (Analyze_Constituent): Set the
refinement constituents when adding a new element.
(Analyze_Part_Of_In_Decl_Part): Set the Part_Of constituents when
adding a new element.
(Analyze_Part_Of_Option): Set the Part_Of
constituents when adding a new element.
(Analyze_Pragma): Set the Part_Of constituents when adding a new
element.
(Check_Constituent_Usage (all versions)): Reimplemented.
(Collect_Constituent): Set the refinement constituents when adding
a new element.
(Create_Abstract_State): Do not initialize the
constituent lists as this is now done on a need-to-add-element basis.
(Propagate_Part_Of): Set the Part_Of constituents when
adding a new element.
* sem_util.adb (Check_State_Refinements): New routine.
(Has_Non_Null_Refinement): Reimplemented.
(Has_Null_Refinement): Reimplemented.
(Requires_State_Refinement): Removed.
* sem_util.ads (Check_State_Refinements): New routine.
(Requires_State_Refinement): Removed.

From-SVN: r235326

8 years agolib-writ.adb, [...]: Minor reformatting and code cleanup.
Hristian Kirtchev [Thu, 21 Apr 2016 09:41:45 +0000 (09:41 +0000)]
lib-writ.adb, [...]: Minor reformatting and code cleanup.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-writ.adb, sem_ch6.adb: Minor reformatting and code cleanup.
* sem.adb: Fix comment.

From-SVN: r235325

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 09:39:38 +0000 (11:39 +0200)]
[multiple changes]

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Subtype_Declaration): A subtype
declaration with no aspects, whose subtype_mark is a subtype
with predicates, inherits the list of subprograms for the type.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* exp_aggr.adb (Has_Per_Object_Constraint): Refine previous
change.

2016-04-21  Thomas Quinot  <quinot@adacore.com>

* g-socket.adb (Raise_Host_Error): Include additional Name parameter.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* lib-writ.adb (Write_ALI): Do not record in ali file units
that are present in the files table but not analyzed. These
units are present because they appear in the context of units
named in limited_with clauses, and the unit being compiled does
not depend semantically on them.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Simplify code to
create the procedure body for an function returning an array type,
when generating C code. Reuse the subprogram body rather than
creating a new one, both as an efficiency measure and because
in an instance the body may contain global references that must
be preserved.

From-SVN: r235324

8 years agomax(INT_MIN, x) -> x
Marc Glisse [Thu, 21 Apr 2016 09:32:32 +0000 (11:32 +0200)]
max(INT_MIN, x) -> x

2016-04-21  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* match.pd (min(int_max, x), max(int_min, x)): New transformations.

gcc/testsuite/
* gcc.dg/tree-ssa/minmax-1.c: New testcase.

From-SVN: r235323

8 years agosem_ch3.adb, [...]: Minor reformatting.
Hristian Kirtchev [Thu, 21 Apr 2016 09:26:02 +0000 (09:26 +0000)]
sem_ch3.adb, [...]: Minor reformatting.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb, exp_attr.adb, exp_ch6.adb, exp_aggr.adb: Minor
reformatting.

From-SVN: r235322

8 years agoexp_aggr.adb (Component_Check): Extend the check that verifies that the aggregate...
Javier Miranda [Thu, 21 Apr 2016 09:18:57 +0000 (09:18 +0000)]
exp_aggr.adb (Component_Check): Extend the check that verifies that the aggregate has no function calls to...

2016-04-21  Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb (Component_Check): Extend
the check that verifies that the aggregate has no function
calls to handle transformations performed by the frontend.
(Ultimate_Original_Expression): New subprogram.

From-SVN: r235321

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 09:12:45 +0000 (11:12 +0200)]
[multiple changes]

2016-04-21  Philippe Gil  <gil@adacore.com>

* krunch.adb (Krunch): Fix krunching of i-java.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* exp_ch8.adb (Evaluation_Required): Always return
True when Modify_Tree_For_C.

From-SVN: r235320

8 years agoipa-inline.c (can_inline_edge_p): Pass caller info to ultiimate_alias_target.
Jan Hubicka [Thu, 21 Apr 2016 09:08:08 +0000 (11:08 +0200)]
ipa-inline.c (can_inline_edge_p): Pass caller info to ultiimate_alias_target.

* ipa-inline.c (can_inline_edge_p): Pass caller info to
ultiimate_alias_target.
(update_callee_keys): Likewise.
(lookup_recursive_calls): Likewise.
(speculation_useful_p): Likewise.

From-SVN: r235319

8 years agore PR c++/70018 (Possible issue around IPO and C++ comdats discovered as pure/const)
Jan Hubicka [Thu, 21 Apr 2016 09:05:07 +0000 (11:05 +0200)]
re PR c++/70018 (Possible issue around IPO and C++ comdats discovered as pure/const)

PR ipa/70018
* cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
(set_nothrow_flag_1): ... this; handle interposition correctly;
recurse on aliases and thunks.
(cgraph_node::set_nothrow_flag): New.
* ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
functions compiled with non-call exceptions that binds to current
def.
(propagate_nothrow): Be safe WRT interposition.
* cgraph.h (set_nothrow_flag): Update prototype.

* g++.dg/ipa/nothrow-1.C: New testcase.

From-SVN: r235318

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:57:30 +0000 (10:57 +0200)]
[multiple changes]

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

* gnatlink.adb (Gnatlink): Robustify detection of Windows target.
* alloc.ads: Minor comment fixes.
* einfo.ads: Fix typo.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* exp_aggr.adb (Component_Not_OK_For_Backend): Redo previous
changes to handle all cases of components depending on the
discriminant, not just string literals.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Analyze_Subtype_Declaration): If the subtype
declaration is the generated declaration for a generic actual,
inherit predicates from the actual if it is a predicated subtype.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* exp_ch6.adb (Rewrite_Function_Call_For_C): If the function is
inherited and its result is controlling,  introduce a conversion
on the actual for the corresponding procedure call, to avoid
spurious type errors.

2016-04-21  Jerome Lambourg  <lambourg@adacore.com>

* krunch.adb (Krunch): Fix krunching of i-vxworks.

From-SVN: r235317

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:54:25 +0000 (10:54 +0200)]
[multiple changes]

2016-04-21  Gary Dismukes  <dismukes@adacore.com>

* exp_aggr.adb: Minor reformatting and code cleanup.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Resolve_Name): Omit quantified expressions from
resolution, because they introduce local names. Full resolution
will take place when predicate function is constructed.

From-SVN: r235316

8 years agotree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also max_loop_iterations_int.
Jan Hubicka [Thu, 21 Apr 2016 08:52:41 +0000 (10:52 +0200)]
tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also max_loop_iterations_int.

* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
max_loop_iterations_int.
(tree_unswitch_outer_loop): Likewise.

From-SVN: r235315

8 years agoexp_aggr.adb (Component_Not_OK_For_Backend): Refine previous change to take into...
Arnaud Charlet [Thu, 21 Apr 2016 08:52:31 +0000 (08:52 +0000)]
exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous change to take into account Per_Object_Constraint field rather...

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* exp_aggr.adb (Component_Not_OK_For_Backend): Refine previous
change to take into account Per_Object_Constraint field rather
than special casing strings.
* exp_ch6.adb: Fix typo in Replace_Returns.

From-SVN: r235314

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:50:36 +0000 (10:50 +0200)]
[multiple changes]

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch5.adb: Minor reformatting.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

* exp_ch2.adb (Expand_Current_Value): Make an appropriate
character literal if the entity is of a character type.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* exp_aggr.adb (Backend_Processing_Possible): Return False
when generating C and aggregate contains function calls.

2016-04-21  Tristan Gingold  <gingold@adacore.com>

* krunch.adb (Krunch): Only partially krunch children of
Interfaces that aren't known.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Make_Inline): Handle properly the instantiation
of a generic subpprogram that carries an Inline aspect. Place
inline info on the anonymous subprogram that is constructed in
the wrapper package.
(Analyze_Pragma, case Pure): Do not check placement if pragma
appears within an instantiation, which can be nested at any level.
* sem_ch12.adb (Analyze_Instance_And_Renamings): Do not copy Freeze
node from anonymous subprogram to its visible renaming. The
freeze node will be constructed if the subprogram carries
delayed aspects.
(Set_Global): Preserve dimension information if present (from
code reading).

2016-04-21  Vasiliy Fofanov  <fofanov@adacore.com>

* gnatlink.adb: Change wording of the warning message on
problematic filenames to be more neutral. Add a new substring
"patch" introduced on Windows 10.

From-SVN: r235313

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:48:04 +0000 (10:48 +0200)]
[multiple changes]

2016-04-21  Philippe Gil  <gil@adacore.com>

* tracebak.c (__gnat_backtrace): handle bad RIP values (win64 only)

2016-04-21  Javier Miranda  <miranda@adacore.com>

* exp_aggr.adb (Component_Not_OK_For_Backend): Return true for string
literals.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Has_Non_Null_Abstract_State): New routine.
* einfo.ads New synthesized attribute
Has_Non_Null_Abstract_State along with occurrences in entities.
(Has_Non_Null_Abstract_State): New routine.
* sem_ch7.adb (Unit_Requires_Body): Add local variable
Requires_Body. A package declaring an abstract state requires
a body only when the state is non-null and the package contains
at least one other construct that requires completion in a body.
* sem_util.adb (Mode_Is_Off): Removed.
(Requires_State_Refinement): Remove an obsolete check. Code
cleanup.

2016-04-21  Bob Duff  <duff@adacore.com>

* sem_attr.adb (Analyze_Attribute): In processing
the 'Old attribute, a warning is given for infinite recursion. Fix
the code to not crash when the prefix of 'Old denotes a protected
function.
* sem_ch5.adb (Analyze_Iterator_Specification):
Avoid calling Is_Dependent_Component_Of_Mutable_Object in cases
where the parameter would not be an object.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

* sem_eval.adb (Compile_Time_Compare): Be prepared for an empty
Etype or Underlying_Type of the operands.

2016-04-21  Eric Botcazou  <ebotcazou@adacore.com>

* atree.adb (Print_Statistics): Protect against overflows and
print the memory consumption in bytes.
* table.adb (Reallocate): Do the intermediate calculation of the new
size using the Memory.size_t type.

From-SVN: r235312

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:30:19 +0000 (10:30 +0200)]
[multiple changes]

2016-04-21  Gary Dismukes  <dismukes@adacore.com>

* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Suppress
expansion of Attribute_Machine and Attribute_Model for AAMP.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb: Disable previous change for now.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Find_Selected_Component): If prefix has an
access type and designated type is a limited view, introduce
an explicit dereference before continuing the analysis, and
set its type to the non-limited view of the designated type,
if we are in context where it is available.

From-SVN: r235311

8 years agoMinor reformatting.
Arnaud Charlet [Thu, 21 Apr 2016 08:27:18 +0000 (10:27 +0200)]
Minor reformatting.

From-SVN: r235310

8 years agofreeze.adb: Freeze profile in ASIS mode.
Ed Schonberg [Thu, 21 Apr 2016 08:26:57 +0000 (08:26 +0000)]
freeze.adb: Freeze profile in ASIS mode.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* freeze.adb: Freeze profile in ASIS mode.

From-SVN: r235309

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:25:21 +0000 (10:25 +0200)]
[multiple changes]

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_aux.ads, sem_aux.adb (Has_Rep_Item): New variant.
* sem_util.adb (Inherit_Rep_Item_Chain): Reimplemented.

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch6.adb: Minor reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: Minor comment update.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* freeze.ads, freeze.adb (Freeze_Entity, Freeze_Before): Add
boolean parameter to determine whether freezing an overloadable
entity freezes its profile as well. This is required by
AI05-019. The call to Freeze_Profile within Freeze_Entity is
conditioned by the value of this flag, whose default is True.
* sem_attr.adb (Resolve_Attribute, case 'Access): The attribute
reference freezes the prefix, but it the prefix is a subprogram
it does not freeze its profile.

From-SVN: r235308

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:23:05 +0000 (10:23 +0200)]
[multiple changes]

2016-04-21  Javier Miranda  <miranda@adacore.com>

* exp_util.adb (Build_Procedure_Form): No action needed for
subprogram renamings since the backend can generate the call
using the renamed subprogram. This leaves the tree more clean
to the backend.
* exp_ch6.adb (Expand_Call): Extend previous patch for
rewritten-for-c entities to handle subprogram renamings.
(Rewrite_Function_Call_For_C): Handle subprogram renamings.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: Code cleanup.

From-SVN: r235307

8 years agosem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is created for SPARK_To_C...
Ed Schonberg [Thu, 21 Apr 2016 08:21:47 +0000 (08:21 +0000)]
sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is created for SPARK_To_C...

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is
created for SPARK_To_C, the entity must remain invisible so it
does not overload subsequent references to the original function.
* exp_ch6.adb (Build_Procedure_Body_Form, Replace_Returns):
Handle Extended_Return_Statements by replacing it with a block
with assignments and a simple return statement.
* exp_util.adb (Build_Procedure_Form): Make procedure entity
invisible after analyzing declaration, to prevent improper
overloading.

From-SVN: r235306

8 years agosem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C...
Javier Miranda [Thu, 21 Apr 2016 08:20:59 +0000 (08:20 +0000)]
sem_ch6.adb (Build_Subprogram_Declaration): Propagate the attribute Rewritten_For_C to the body since since the expander...

2016-04-21  Javier Miranda  <miranda@adacore.com>

* sem_ch6.adb (Build_Subprogram_Declaration): Propagate the
attribute Rewritten_For_C to the body since since the expander
may generate calls using that entity.
* exp_ch6.adb (Expand_Call): For internally generated
calls ensure that they reference the entity of the spec
of the called function.
(Rewritten_For_C_Func_Id): New subprogram.
(Rewritten_For_C_Proc_Id): New subprogram.
(Rewrite_Function_Call_For_C): Invoke the new subprogram to
ensure that we skip freezing entities.
* exp_util.adb (Build_Procedure_Form): No action needed if the
procedure was already built.

From-SVN: r235305

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:19:35 +0000 (10:19 +0200)]
[multiple changes]

2016-04-21  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch3.adb, exp_util.adb, sem_ch13.adb, exp_unst.adb: Minor
reformatting.

2016-04-21  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Denotes_Iterator): Use root type to determine
whether the ultimate ancestor is the predefined iterator
interface pakage.
* exp_ch5.adb (Expand_Iterator_Over_Container): simplify code
and avoid reuse of Pack local variable.

2016-04-21  Olivier Hainque  <hainque@adacore.com>

* system-vxworks-arm.ads, system-vxworks-sparcv9.ads,
system-vxworks-ppc.ads, system-vxworks-m68k.ads,
system-vxworks-mips.ads, system-vxworks-x86.ads: Define
Executable_Extension to ".out".

From-SVN: r235304

8 years agofrontend.adb: Update call to Unnest_Subprograms.
Javier Miranda [Thu, 21 Apr 2016 08:14:08 +0000 (08:14 +0000)]
frontend.adb: Update call to Unnest_Subprograms.

2016-04-21  Javier Miranda  <miranda@adacore.com>

* frontend.adb: Update call to Unnest_Subprograms.
* exp_ch6.ads, exp_ch6.adb, exp_unst.ads, exp_unst.adb
(Unnest_Subprograms): Moved to package exp_unst.
* exp_unst.ads (Unnest_Subprogram): Moved to the body of the
package.
* exp_dbug.adb (Qualify_Entity_Name): Enable qualification of
enumeration literals when generating C code.

From-SVN: r235303

8 years ago[multiple changes]
Arnaud Charlet [Thu, 21 Apr 2016 08:11:46 +0000 (10:11 +0200)]
[multiple changes]

2016-04-21  Javier Miranda  <miranda@adacore.com>

* frontend.adb: Remove call to initialize Exp_Ch6.
* exp_ch6.ads, exp_ch6.adb (Initialize): removed.
(Unest_Entry/Unest_Bodies): Removed.
(Unnest_Subprograms): Code cleanup.

2016-04-21  Arnaud Charlet  <charlet@adacore.com>

* set_targ.adb (Read_Target_Dependent_Values):
close target description file once its contents is read.
* s-os_lib.adb (Non_Blocking_Spawn, version with Stdout_File
and Stderr_File): Close local file descriptors before spawning
child process.
* exp_util.adb (Containing_Package_With_Ext_Axioms): Limit scope of
local variables to make the code easier to understand and avoid
duplicated calls to Parent and Generic_Parent.

From-SVN: r235302

8 years agoDaily bump.
GCC Administrator [Thu, 21 Apr 2016 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235301

8 years agore PR c++/55635 (Deallocation function ("operator delete") not called when destructor...
Nathan Sidwell [Wed, 20 Apr 2016 19:59:56 +0000 (19:59 +0000)]
re PR c++/55635 (Deallocation function ("operator delete") not called when destructor throws exception)

cp/
PR c++/55635
* init.c (build_vec_delete_1): Protect operator delete call in try
finally.
(build_delete): Likewise.
* optimize.c (build_delete_destructor_body): Likewise.

testsuite/
PR c++/55635
* g++.dg/eh/delete1.C: New.

From-SVN: r235297

8 years agoAdd -mtune-ctrl=sse_typeless_stores to avx256-unaligned-store-2.c
H.J. Lu [Wed, 20 Apr 2016 19:45:49 +0000 (19:45 +0000)]
Add -mtune-ctrl=sse_typeless_stores to avx256-unaligned-store-2.c

Since avx256-unaligned-store-2.c scans typeless SSE stores, add
-mtune-ctrl=sse_typeless_stores to enable typeless SSE stores.

* gcc.target/i386/avx256-unaligned-store-2.c: Add
-mtune-ctrl=sse_typeless_stores.

From-SVN: r235296

8 years agoUpdate load scan avx256-unaligned-load-1.c
H.J. Lu [Wed, 20 Apr 2016 19:44:52 +0000 (19:44 +0000)]
Update load scan avx256-unaligned-load-1.c

Since avx_loadups256 and sse_loadups have been replaced by movv8sf_internal
and movv4sf_internal, respectively, we need to scan movv8sf_internal and
movv4sf_internal for load.

* gcc.target/i386/avx256-unaligned-load-1.c: Update load scan.

From-SVN: r235295

8 years agoFix std::codecvt_utf8* for big-endian targets
Jonathan Wakely [Wed, 20 Apr 2016 17:40:02 +0000 (18:40 +0100)]
Fix std::codecvt_utf8* for big-endian targets

PR libstdc++/69703
* src/c++11/codecvt.cc (__codecvt_utf8_base<char16_t>::do_in,
__codecvt_utf8_utf16_base<char16_t>::do_in): Fix mask operations.

From-SVN: r235293

8 years agore PR tree-optimization/69489 (missed vectorization for boolean loop, missed if-conve...
Bin Cheng [Wed, 20 Apr 2016 15:57:01 +0000 (15:57 +0000)]
re PR tree-optimization/69489 (missed vectorization for boolean loop, missed if-conversion)

PR tree-optimization/69489
* tree-if-conv.c (phi_convertible_by_degenerating_args): New.
(if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
Revise dump message.
(if_convertible_bb_p): Remove check on edge count of basic block's
predecessors.

gcc/testsuite/ChangeLog
PR tree-optimization/69489
* gcc.dg/tree-ssa/ifc-pr69489-2.c: New test.

From-SVN: r235292

8 years agoieee754-df.S: Fix typos in comments.
Martin Galvan [Wed, 20 Apr 2016 15:49:13 +0000 (15:49 +0000)]
ieee754-df.S: Fix typos in comments.

2016-04-20  Martin Galvan  <martin.galvan@tallertechnologies.com>

libgcc/
* config/arm/ieee754-df.S: Fix typos in comments.

From-SVN: r235291

8 years agore PR c++/69363 (ICE when doing a pragma simd reduction with max)
Ilya Verbin [Wed, 20 Apr 2016 15:48:53 +0000 (15:48 +0000)]
re PR c++/69363 (ICE when doing a pragma simd reduction with max)

Fix PR c++/69363

gcc/c-family/
PR c++/69363
* c-cilkplus.c (c_finish_cilk_clauses): Remove function.
* c-common.h (c_finish_cilk_clauses): Remove declaration.
gcc/c/
PR c++/69363
* c-parser.c (c_parser_cilk_all_clauses): Use c_finish_omp_clauses
instead of c_finish_cilk_clauses.
* c-tree.h (c_finish_omp_clauses): Add new default argument.
* c-typeck.c (c_finish_omp_clauses): Add new argument.  Allow
floating-point variables in the linear clause for Cilk Plus.
gcc/cp/
PR c++/69363
* cp-tree.h (finish_omp_clauses): Add new default argument.
* parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
instead of c_finish_cilk_clauses.
* semantics.c (finish_omp_clauses): Add new argument.  Allow
floating-point variables in the linear clause for Cilk Plus.
gcc/testsuite/
PR c++/69363
* c-c++-common/cilk-plus/PS/clauses3.c: Adjust dg-error string.
* c-c++-common/cilk-plus/PS/clauses4.c: New test.
* c-c++-common/cilk-plus/PS/pr69363.c: New test.

From-SVN: r235290

8 years agore PR tree-optimization/56625 (After if-conversion vectorizer doesn't recognize simil...
Bin Cheng [Wed, 20 Apr 2016 15:41:45 +0000 (15:41 +0000)]
re PR tree-optimization/56625 (After if-conversion vectorizer doesn't recognize similar loads)

PR tree-optimization/56625
PR tree-optimization/69489
* tree-data-ref.h (DR_INNERMOST): New macro.
* tree-if-conv.c (innermost_loop_behavior_hash): New class for
hashing struct innermost_loop_behavior.
(ref_DR_map): Remove.
(innermost_DR_map): New map.
(baseref_DR_map): Revise comment.
(hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
to innermost_DR_map accroding to its innermost loop behavior.
(ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
to its innermost loop behavior.
(if_convertible_loop_p_1): Remove intialization for ref_DR_map.
Add initialization for innermost_DR_map.  Record memory reference
in DR_BASE_ADDRESS if the reference is compound one or it doesn't
have innermost loop behavior.
(if_convertible_loop_p): Remove release for ref_DR_map.  Release
innermost_DR_map.

gcc/testsuite/ChangeLog
PR tree-optimization/56625
PR tree-optimization/69489
* gcc.dg/vect/pr56625.c: New test.
* gcc.dg/tree-ssa/ifc-pr69489-1.c: New test.

From-SVN: r235289

8 years agosemantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a TARGET_EXPR.
Nathan Sidwell [Wed, 20 Apr 2016 15:30:47 +0000 (15:30 +0000)]
semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a TARGET_EXPR.

* semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
TARGET_EXPR.

From-SVN: r235288

8 years agoDon't build 32-bit libatomic with -march=i486 on x86-64
H.J. Lu [Wed, 20 Apr 2016 14:41:55 +0000 (14:41 +0000)]
Don't build 32-bit libatomic with -march=i486 on x86-64

Gcc uses the same -march= for both -m32 and -m64 on x86-64 unless
--with-arch-32= is used.  There is no need for -march=i486 to compile
32-bit libatomic on x86-64.

PR target/70454
* configure.tgt (XCFLAGS): Don't add -march=i486 to compile
32-bit x86 target library on x86-64.

From-SVN: r235287

8 years agoi386.md (*lea<mode>_general_1): Rename from *lea_general_1.
Uros Bizjak [Wed, 20 Apr 2016 14:33:05 +0000 (16:33 +0200)]
i386.md (*lea<mode>_general_1): Rename from *lea_general_1.

* config/i386/i386.md (*lea<mode>_general_1): Rename from
*lea_general_1.  Use explicit SWI12 mode interator.
(*lea<mode>_general_2): Rename from *lea_general_2.
Use explicit SWI12 mode interator.
(*lea<mode>_general_3): Rename from *lea_general_3.
Use explicit SWI12 mode interator.
(*lea<SWI12:mode>_general_4): Split from *lea_general_4.
Use explicit SWI12 mode interator.
(*lea<SWI48:mode>_general_4): Split from *lea_general_4.
Use explicit SWI48 mode interator.

From-SVN: r235286

8 years agoSimplify ix86_expand_vector_move_misalign
H.J. Lu [Wed, 20 Apr 2016 13:39:28 +0000 (13:39 +0000)]
Simplify ix86_expand_vector_move_misalign

Since mov<mode>_internal patterns handle both aligned/unaligned load
and store, we can simplify ix86_avx256_split_vector_move_misalign and
ix86_expand_vector_move_misalign.

* config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
Short-cut unaligned load and store cases.  Handle all integer
vector modes.
(ix86_expand_vector_move_misalign): Short-cut unaligned load
and store cases.  Call ix86_avx256_split_vector_move_misalign
directly without checking mode class.

From-SVN: r235283

8 years ago[AArch64] Work around PR target/64971
Andrew Pinski [Wed, 20 Apr 2016 13:29:32 +0000 (13:29 +0000)]
[AArch64] Work around PR target/64971

2016-04-20  Andrew Pinski  <apinski@cavium.com>
            Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

PR target/64971
* config/aarch64/aarch64.md (sibcall): Force call
address to be DImode for ILP32.
(sibcall_value): Likewise.

* gcc.c-torture/compile/pr37433-1.c: New testcase.

Co-Authored-By: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
From-SVN: r235281

8 years agoReplace -skip-rax-setup with -mskip-rax-setup
H.J. Lu [Wed, 20 Apr 2016 12:55:36 +0000 (12:55 +0000)]
Replace -skip-rax-setup with -mskip-rax-setup

* doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.

From-SVN: r235275

8 years agogimple-match.h (maybe_build_generic_op): Adjust prototype.
Richard Biener [Wed, 20 Apr 2016 12:49:58 +0000 (12:49 +0000)]
gimple-match.h (maybe_build_generic_op): Adjust prototype.

2016-04-20  Richard Biener  <rguenther@suse.de>

* gimple-match.h (maybe_build_generic_op): Adjust prototype.
* gimple-match-head.c (maybe_build_generic_op): Pass all ops
by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
(maybe_push_res_to_seq): Adjust.
* gimple-fold.c (maybe_build_generic_op): Likewise.

From-SVN: r235274

8 years agotree-if-conv.c (is_false_predicate): For NULL_TREE return false rather than true.
Marek Polacek [Wed, 20 Apr 2016 12:37:38 +0000 (12:37 +0000)]
tree-if-conv.c (is_false_predicate): For NULL_TREE return false rather than true.

* tree-if-conv.c (is_false_predicate): For NULL_TREE return false
rather than true.

From-SVN: r235272

8 years ago* gnat.dg/self1.adb: Remove now incorrect test.
Arnaud Charlet [Wed, 20 Apr 2016 12:28:48 +0000 (12:28 +0000)]
* gnat.dg/self1.adb: Remove now incorrect test.

From-SVN: r235271

8 years agosse.md (vec_unpacks_lo_hi): Always use kmovw to support AVX512F target.
Ilya Enkovich [Wed, 20 Apr 2016 11:47:13 +0000 (11:47 +0000)]
sse.md (vec_unpacks_lo_hi): Always use kmovw to support AVX512F target.

gcc/

* config/i386/sse.md (vec_unpacks_lo_hi): Always
use kmovw to support AVX512F target.

From-SVN: r235270

8 years agotree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
Bin Cheng [Wed, 20 Apr 2016 11:42:36 +0000 (11:42 +0000)]
tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.

* tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.

* gcc.dg/tree-ssa/scev-11.c: New test.
* gcc.dg/tree-ssa/scev-12.c: New test.

From-SVN: r235269

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:56:12 +0000 (12:56 +0200)]
[multiple changes]

2016-04-20  Bob Duff  <duff@adacore.com>

* s-os_lib.ads: Minor comment fix.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* exp_ch5.adb (Expand_N_Assignment_Statement): Do no generate
a discriminant check for a type whose partial view has unknown
discriminants when the full view has discriminants with defaults.

2016-04-20  Javier Miranda  <miranda@adacore.com>

* exp_util.adb (Remove_Side_Effects): When generating C code
remove side effect of type conversion of access to unconstrained
array type.
(Side_Effect_Free): Return false for the type
conversion of access to unconstrained array type when generating
C code.
* sem_res.adb (Resolved_Type_Conversion): Remove side effects
of access to unconstrained array type conversion when generating
C code.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Build_Predicate_Function_Declaration): New
function, to construct the declaration of a predicate function
at the end of the current declarative part rather than at the
(possibly later) freeze point of the type. This also allows uses
of a type with predicates in instantiations elsewhere.
(Resolve_Aspect_Expression): New procedure to detect visiblity
errors in aspect expressions, at the end of the declarative part
that includes the type declaration.
* sem_ch3.adb (Complete_Private_Subtype): Propagate properly the
predicate function from private to full view.
* einfo.adb (Predicate_Function): Refine search for predicate
function when type has a full view and predicate function may
be defined on either view.

2016-04-20  Javier Miranda  <miranda@adacore.com>

* frontend.adb: Passing the root of the tree to
Unnest_Subprograms().
* exp_ch6.adb (Expand_N_Subprogram_Body): Remove code that
took care of adding subprograms to the Unest_Bodies table since
performing such action too early disables the ability to process
generic instantiations.
(Unnest_Subprograms): Adding parameter.
(Search_Unnesting_Subprograms): New subprogram.
* exp_ch6.ads (Unnest_Subrograms): Update documentation.

From-SVN: r235268

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:51:01 +0000 (12:51 +0200)]
[multiple changes]

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_util.adb, freeze.adb, sem_util.adb: Minor reformatting.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* exp_unst.adb (Check_Static_Type): For a private type, check
full view.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_attr.adb (Check_Type): Reject an attribute reference in
an aspect expression, when the prefix of the reference is the
current instance of the type to which the aspect applies.

From-SVN: r235267

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:49:24 +0000 (12:49 +0200)]
[multiple changes]

2016-04-20  Bob Duff  <duff@adacore.com>

* sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about
hiding unless we're actually hiding something. The previous
code would (for example) warn about a "<" on a record type
because it incorrectly thought it was hiding the "<" on Boolean
in Standard. We need to check that the homonym S is in fact a
homograph of a predefined operator.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* exp_util.ads, exp_util.adb (Build_Procedure_Form): Moved here
from exp_ch6.adb, for use in SPARK_To_C mode when creating the
procedure equivalent to a function returning an array, when this
construction is deferred to the freeze point of the function.
* sem_util.adb (Is_Unchecked_Conversion_Instance): Include a
function that renames an instance of Unchecked_Conversion.
* freeze.adb (Freeze_Subprogram): Generate the proper procedure
declaration for a function returning an array.
* exp_ch6.adb (Build_Procedure_Form): Moved to exp_util.

From-SVN: r235266

8 years agosem_util.ads, [...] (Is_Expanded_Priority_Attribute): New predicate to determine...
Ed Schonberg [Wed, 20 Apr 2016 10:46:57 +0000 (10:46 +0000)]
sem_util.ads, [...] (Is_Expanded_Priority_Attribute): New predicate to determine that in a context with full run-time...

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_util.ads, sem_util.adb (Is_Expanded_Priority_Attribute):
New predicate to determine that in a context with full run-time,
a function call is an expansion of a reference to attribute
Priority.
* sem_ch5.adb (Analyze_Function_Call): use it.
* exp_ch5.adb (Expand_N_Subprogram_Call): use it.

From-SVN: r235265

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:45:55 +0000 (12:45 +0200)]
[multiple changes]

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb Flag286 is now used as Is_Exception_Handler.
(Is_Exception_Handler): New routine.
(Set_Is_Exception_Handler): New routine.
(Write_Entity_Flags): Output the status of Is_Exception_Handler.
* einfo.ads New attribute Is_Exception_Handler along with
occurrences in entities.
(Is_Exception_Handler): New routine along with pragma Inline.
(Set_Is_Exception_Handler): New routine along with pragma Inline.
* exp_ch7.adb (Make_Transient_Block): Ignore blocks generated
for exception handlers with a choice parameter.
* sem_ch11.adb (Analyze_Exception_Handlers): Mark the scope
generated for a choice parameter as an exception handler.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch3.adb (Build_Derived_Access_Type): Remove dead code.
(Constrain_Discriminated_Type): In an instance, if the type has
unknown discriminants, use its full view.
(Process_Subtype): Check that the base type is private before
adding subtype to Private_Dependents list.

2016-04-20  Bob Duff  <duff@adacore.com>

* sem_ch13.adb: Minor comment fix.

From-SVN: r235264

8 years agosem_ch4.adb: Fix typos in comments.
Yannick Moy [Wed, 20 Apr 2016 10:44:17 +0000 (10:44 +0000)]
sem_ch4.adb: Fix typos in comments.

2016-04-20  Yannick Moy  <moy@adacore.com>

* sem_ch4.adb: Fix typos in comments.
* sem_res.adb (Resolve_Case_Expression): Fix type of case alternatives.

From-SVN: r235263

8 years agoMinor reformatting.
Arnaud Charlet [Wed, 20 Apr 2016 10:43:18 +0000 (12:43 +0200)]
Minor reformatting.

From-SVN: r235262

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:43:03 +0000 (12:43 +0200)]
[multiple changes]

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch4.adb (Analyze_Selected_Component): A reference to the
current instance of a task type is legal if the prefix is an
expression of that task type and the selector is an entry or
entry family.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* a-cfdlli.ads (List): Type is no longer tagged, not needed. Move
varsize field at the end for efficiency.

From-SVN: r235261

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:40:48 +0000 (12:40 +0200)]
[multiple changes]

2016-04-20  Vincent Celier  <celier@adacore.com>

* gnatcmd.adb: Do not invoke gprls when the invocation of "gnat
ls" includes the switch -V.
* clean.adb: "<target>-gnatclean -P" now calls "gprclean
--target=<target>"
* make.adb: "<target>-gnatmake -P" now calls "gprbuild
--target=<target>"

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Qualify_Type): Do not perform
partial qualification when the immediate scope is a generic unit.

From-SVN: r235260

8 years agoexp_unst.adb: Minor reformatting.
Hristian Kirtchev [Wed, 20 Apr 2016 10:38:24 +0000 (10:38 +0000)]
exp_unst.adb: Minor reformatting.

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_unst.adb: Minor reformatting.

From-SVN: r235259

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:36:01 +0000 (12:36 +0200)]
[multiple changes]

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_ch4.adb (Expand_Allocator_Expression): Ensure that the
tag assignment and adjustment preceed the accessibility check.
* exp_ch7.adb (Is_Subprogram_Call): Reimplemented.

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_prag.adb (Expand_Attributes): Ensure that
the temporary used to capture the value of attribute 'Old's
prefix is properly initialized.

2016-04-20  Javier Miranda  <miranda@adacore.com>

* exp_unst.ads, exp_unst.adb (Get_Level, Subp_Index): Moved to library
level.

From-SVN: r235258

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:31:59 +0000 (12:31 +0200)]
[multiple changes]

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* sem_ch9.adb (Analyze_Task_Type_Declaration): Shut down warning
in codepeer mode.

2016-04-20  Vincent Celier  <celier@adacore.com>

* make.adb: Code cleanup.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* exp_ch4.adb (Expand_Allocator_Expression): Help C code
generation.

From-SVN: r235257

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:29:26 +0000 (12:29 +0200)]
[multiple changes]

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Copy_Generic_Node): Handle the special
qualification installed for universal literals that act as
operands in binary or unary operators. (Qualify_Operand): Mark
the qualification to signal the instantiation mechanism how to
handle global reference propagation.
* sinfo.adb (Is_Qualified_Universal_Literal): New routine.
(Set_Is_Qualified_Universal_Literal): New routine.
* sinfo.ads New attribute Is_Qualified_Universal_Literal along
with occurrences in nodes.
(Is_Qualified_Universal_Literal):
New routine along with pragma Inline.
(Set_Is_Qualified_Universal_Literal): New routine along with
pragma Inline.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem.adb (Do_Analyze): Save and restore Style_Max_Line_Length
so that the corresponding checks are preserved across compilations
that include System.Constants in their context.

2016-04-20  Gary Dismukes  <dismukes@adacore.com>

* sem_type.adb: Minor typo fix and reformatting.
* a-conhel.ads: Update comment.

2016-04-20  Bob Duff  <duff@adacore.com>

* a-cihama.adb, a-cihase.adb, a-coinve.adb (Copy): Rewrite the
code so it doesn't trigger an "uninit var" warning.

From-SVN: r235256

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:26:48 +0000 (12:26 +0200)]
[multiple changes]

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_attr.ads Add new table Universal_Type_Attribute.
* sem_util.adb (Yields_Universal_Type): Use a table lookup when
checking attributes.

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* exp_aggr.adb (Init_Stored_Discriminants,
Init_Visible_Discriminants): New procedures, subsidiary of
Build_Record_Aggr_Code, to handle properly the construction
of aggregates for a derived type that constrains some parent
discriminants and renames others.

From-SVN: r235255

8 years agosem_ch12.adb (Qualify_Universal_Operands): New routine.
Hristian Kirtchev [Wed, 20 Apr 2016 10:19:57 +0000 (10:19 +0000)]
sem_ch12.adb (Qualify_Universal_Operands): New routine.

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_ch12.adb (Qualify_Universal_Operands): New routine.
(Save_References_In_Operator): Add explicit qualifications in
the generic template for all operands of universal type.
* sem_type.adb (Disambiguate): Update the call to Matches.
(Matches): Reimplemented.
* sem_util.ads, sem_util.adb (Yields_Universal_Type): New routine.

From-SVN: r235254

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 10:10:32 +0000 (12:10 +0200)]
[multiple changes]

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Rep_Item_Too_Late): Better error message for
an illegal aspect that freezes the entity to which it applies.

2016-04-20  Bob Duff  <duff@adacore.com>

* a-stwibo.ads, a-stzbou.ads
("="): Add overriding keyword before function to avoid crash when
compiler is called with -gnatyO (check overriding indicators).

2016-04-20  Ed Schonberg  <schonberg@adacore.com>

* sem_prag.adb (Analyze_Pragma, case Check_Policy):  If this
is a configuration pragma and it uses the ARG syntax, insert
the rewritten pragma after the current one rather than using
Insert_Actions.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* exp_aggr.adb (Backend_Processing_Possible): Add handling of
C back-end.

From-SVN: r235253

8 years agos-imgllu.adb, [...]: Minor reformatting.
Hristian Kirtchev [Wed, 20 Apr 2016 10:05:41 +0000 (10:05 +0000)]
s-imgllu.adb, [...]: Minor reformatting.

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* s-imgllu.adb, sem_util.adb, s-imgint.adb, s-imguns.adb,
s-imglli.adb: Minor reformatting.

From-SVN: r235251

8 years agore PR tree-optimization/70725 (Internal compiler error (ICE) on valid code)
Marek Polacek [Wed, 20 Apr 2016 09:32:45 +0000 (09:32 +0000)]
re PR tree-optimization/70725 (Internal compiler error (ICE) on valid code)

PR tree-optimization/70725
* tree-if-conv.c (is_false_predicate): New function.
(predicate_mem_writes): Use it.

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

From-SVN: r235250

8 years agosem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when...
Hristian Kirtchev [Wed, 20 Apr 2016 09:22:59 +0000 (09:22 +0000)]
sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the renamed operator when the associated node appears within a...

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Rewrite_Renamed_Operator): Do not rewrite the
renamed operator when the associated node appears within a
pre/postcondition.
* sem_util.ads, sem_util.adb (In_Pre_Post_Condition): New routine.

From-SVN: r235249

8 years ago[multiple changes]
Arnaud Charlet [Wed, 20 Apr 2016 09:21:59 +0000 (11:21 +0200)]
[multiple changes]

2016-04-20  Yannick Moy  <moy@adacore.com>

* osint.adb (Relocate_Path): Fix test when Path is shorter than Prefix.
* einfo.adb (Set_Overridden_Operation): Add assertion.
* sem_util.adb (Unique_Entity): for renaming-as-body return the spec
entity.

2016-04-20  Javier Miranda  <miranda@adacore.com>

* exp_unst.adb (Append_Unique_Call): New subprogram.
(Unnest_Subprogram): Replace the unique occurrence
of Call.Append() by Append_Unique_Call() which protects us from
adding to the Calls table duplicated entries.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* exp_attr.adb (Is_GCC_Target): Fix for C backend.
* xref_lib.ads (Dependencies_Tables): instantiate
Table package with types that guarantee its safe use.
* s-imgllu.adb, s-imgint.adb, s-imguns.adb, s-imglli.adb: Avoid nested
procedures.

From-SVN: r235248

8 years agoexp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion...
Arnaud Charlet [Wed, 20 Apr 2016 09:18:59 +0000 (09:18 +0000)]
exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]): Disable expansion when generating C code.

2016-04-20  Arnaud Charlet  <charlet@adacore.com>

* exp_attr.adb (Expand_N_Attribute_Reference [Attribute_Valid]):
Disable expansion when generating C code.
* sinfo.ads, inline.ads: Minor editing.

From-SVN: r235247

8 years agosem_util.adb, [...]: Minor reformatting.
Hristian Kirtchev [Wed, 20 Apr 2016 09:17:15 +0000 (09:17 +0000)]
sem_util.adb, [...]: Minor reformatting.

2016-04-20  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_util.adb, contracts.adb, ghost.adb, exp_ch6.adb: Minor
reformatting.

From-SVN: r235246