* lto-partition.c (add_symbol_to_partition_1,
undo_partition, lto_balanced_map): Aliases have no
defined size.
(lto_balanced_map): Do not follow refering variables
if they can be optimized out.
From-SVN: r207967
PR c++/60272
gcc/
* builtins.c (expand_builtin_atomic_compare_exchange): Conditionalize
on failure the store back into EXPECT.
libatomic/
* cas_n.c (libat_compare_exchange): Conditionalize on failure
the store back to EPTR.
From-SVN: r207966
2014-02-20 Richard Biener <rguenther@suse.de>
* tree-cfg.c (replace_uses_by): Mark altered BBs before
doing the substitution.
(verify_gimple_assign_single): Also verify bare MEM_REFs
on the lhs.
From-SVN: r207958
2014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Usage_Error): Remove local
constant Typ. Remove the specialized diagnostics for unconstrained
or tagged items as those are not part of the explicit input set
of the related subprogram and should not be flagged.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb: Add guard to preserve all errors.
2014-02-20 Vincent Celier <celier@adacore.com>
* switch-m.adb (Normalize_Compiler_Switches): Take into account
switches that are recorded in ALI files: -gnateA, -gnateE,
-gnateF, -gnateinn, -gnateu, -gnateV and -gnateY.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb (Analyze_Iterator_Specification): Check legality
of an element iterator form over a formal container with an
Iterable aspect.
* exp_ch5.adb (Build_Formal_Container_Iteration): Utility
to create declaration and loop statements for both forms of
container iterators.
(Expand_Formal_Container_Element_Iterator): New procedure
to handle loops of the form "for E of C" when C is a formal
container.
(Expand_Formal_Container_Iterator): Code cleanup.
From-SVN: r207953
2014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Add_Item_To_Name_Buffer): New routine.
(Analyze_Contract_Case): Remove the use of
"may". Replace "aspect Contract_Cases" to avoid categorization
of aspect vs pragma.
(Analyze_External_Property_In_Decl_Part): Remove the use of "formal".
(Analyze_Global_Item): Remove
the use of "formal", specify the subprogram. Split the
error message about a state with visible refinement into
two. Remove the use of "global" from "volatile global item".
(Analyze_Initialization_Item): Ensure that the SPARK RM reference
is on one line.
(Analyze_Input_Output): Update the call to
Check_Mode. Specify the duplicated item. Reword the error
message concerning an input of a null output list. Use "\"
for error message continuation.
(Analyze_Part_Of): Remove
the use of "may". Use "\" for error message continuation.
(Analyze_Refined_Depends_In_Decl_Part): Update the error
message concerning a useless refinement to match the format
of Refined_Global.
(Analyze_Refined_Global_In_Decl_Part): Reword the error message
concerning a useless refinement.
(Analyze_Refinement_Clause): Use "\" for error message continuation.
(Check_Constituent_Usage): Use "\" for error message continuation.
(Check_Dependency_Clause): Use "\" for error message continuation.
(Check_Matching_Constituent): Use "\" for error message continuation.
(Check_Missing_Part_Of): Use "\" for error message continuation.
(Check_Mode): Renamed to
Check_Role. Update the comment on usage. Redo the error reporting
to use Role_Error.
(Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error
message continuation.
(Find_Mode): Renamed to Find_Role. Update the parameter profile along
with comment on usage. Update all occurrences of Is_Input and Is_Output.
(Inconsistent_Mode_Error): Use "\" for error message continuation.
(Input_Match): Use "\" for error message continuation.
(Role_Error): New routine.
(Set_Convention_From_Pragma): Use "\" for error message continuation.
(Usage_Error): Add local variable Error_Msg. Build specialized error
message showcasing the offending item kind. Redo the diagnostics for
unconstrained types.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* exp_util.adb (Is_Iterated_Container): Use high-level primitives
to determine whether a type is a container type, rather than
examining only its type declaration, so that subtypes and derived
types are handled properly.
2014-02-20 Sergey Rybin <rybin@adacore.com frybin>
* gnat_ugn.texi: gnatmetric: add description of project-specific
options.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Analyze_Attribute, case 'Update): Verify that
all choices in an association for a record type have the same
type, as is done for record aggregates.
From-SVN: r207952
2014-02-20 Robert Dewar <dewar@adacore.com>
* a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma
Unmodified rather than Warnings (Off). Make comments
uniform in the four affected units.
2014-02-20 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
Object_Size): For non-scalar types allow any value that is a
multiple of 8.
* gnat_rm.texi: Document Object_Size for composites more clearly.
2014-02-20 Yannick Moy <moy@adacore.com>
* sem_util.ads, sem_util.adb (Default_Initialization): Remove function.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* stand.ads: Raise_Type: new predefined entity, used as the type
of a Raise_Expression prior to resolution.
* cstand.adb: Build entity for Raise_Type.
* sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the
initial type of the node.
* sem_type.adb (Covers): Raise_Type is compatible with all
other types.
* sem_res.adb (Resolve): Remove special handling of Any_Type on
Raise_Expression nodes.
(Resolve_Raise_Expression): Signal ambiguity if the type of the
context is still Raise_Type.
From-SVN: r207950
2014-02-20 Robert Dewar <dewar@adacore.com>
* sem_ch12.adb (Validate_Access_Type_Instance): Add message if
mismatching predicates.
* sem_ch6.adb (Check_Conformance): Give better messages on
predicate mismatch.
* sem_eval.adb (Predicates_Match): Move to spec.
* sem_eval.ads (Predicates_Match): Moved here from body.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* a-cbmutr.adb: Use default value in Insert_Child.
From-SVN: r207949
2014-02-20 Vincent Celier <celier@adacore.com>
* gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call
Stringt.Initialize in all project aware tools.
2014-02-20 Doug Rupp <rupp@adacore.com>
* gnat_ugn.texi: Document gnatbind -X option.
* vms_data.ads: Minor warnings documentation reformatting.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant
procedure for a base type.
2014-02-20 Robert Dewar <dewar@adacore.com>
* sem_ch4.adb (Analyze_Case_Expression): Get type from first
expression with type info.
* sem_ch13.adb: Minor reformatting.
* sem_eval.adb (Subtypes_Statically_Match): Make sure we return
False if predicates do not match on the two types.
2014-02-20 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]):
In Relaxed_RM_Semantics mode, allow any static integer value,
for compatibility with other compilers.
From-SVN: r207948
2014-02-20 Vincent Celier <celier@adacore.com>
* errutil.adb (Initialize): Properly initialize entry in table
Warnings when warnings are suppressed.
2014-02-20 Robert Dewar <dewar@adacore.com>
* s-os_lib.ads: Add warning about non-portability of Rename_File.
* sem_util.ads, sem_util.adb (Is_Junk_Name): New function.
* sem_warn.adb: Use Is_Junk_Name to suppress some warnings.
* gnat_ugn.texi: Document no warnings on junk variable names.
* layout.adb: Minor code reorganization (use Ekind_In).
* stringt.adb: Move initialization of Null_String_Id to Initialize
routine.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb: Initialize optional Element_Id.
From-SVN: r207947
2014-02-20 Robert Dewar <dewar@adacore.com>
* s-os_lib.ads (Rename_File): Minor commment addition.
2014-02-20 Thomas Quinot <quinot@adacore.com>
* einfo.ads: Minor reformatting.
2014-02-20 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb (Exchange_Aspects): New routine.
* aspects.ads (Exchange_Aspects): New routine.
* atree.adb (Rewrite): Do not check whether the save node has
aspects as it never will, instead check the node about to be clobbered.
* einfo.adb (Write_Field25_Name): Abstract_States can appear in
entities of generic packages.
* sem_ch6.adb (Analyze_Expression_Function): Fix the parent
pointer of an aspect specification list after rewriting takes place.
* sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect
specifications of the generic template and the copy used for analysis.
* sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap
the aspect specifications of the generic template and the
copy used for analysis.
(Analyze_Package_Instantiation): Propagate the aspect specifications
from the generic template to the instantiation.
(Build_Instance_Compilation_Unit_Nodes): Propagate the aspect
specifications from the generic template to the instantiation.
* sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects
Abstract_State, Initializes and Initial_Condition when they
apply to a package instantiation.
2014-02-20 Robert Dewar <dewar@adacore.com>
* stringt.adb: Add call to Initialize in package initialization.
From-SVN: r207946
2014-02-20 Robert Dewar <dewar@adacore.com>
* a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb,
a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb,
a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb,
a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor
reformatting.
2014-02-20 Bob Duff <duff@adacore.com>
* s-os_lib.ads: Minor: Remove incorrect comment.
2014-02-20 Robert Dewar <dewar@adacore.com>
* sem_elab.adb (Check_Elab_Assign): Clearer warning message.
2014-02-20 Vincent Celier <celier@adacore.com>
* gnat_rm.texi: Minor syntax error fix.
2014-02-20 Ed Schonberg <schonberg@adacore.com>
* a-cborma.adb (Assign): When creating a node without a specified
element, insert an uninitialized element in the map, because
the instance may provide an element type with a default
initialization, e.g a scalar with a Default_Value aspect.
* a-cbhama.adb (Assign_Key): Remove useless Allocate procedure.
(Insert): In the version without explicit element, provide an
uninitialized element, as above.
* a-cbdlli.adb (Append): In the version without explicit element,
provide an uninitalized element, as above.
(Allocate): Remove unused version.
From-SVN: r207945
2014-02-20 Martin Jambor <mjambor@suse.cz>
PR ipa/55260
* ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Uce correct
info when checking whether lattices are bottom.
testsuite/
* gcc.dg/ipa/pr55260.c: New test.
From-SVN: r207941
2014-02-20 Richard Biener <rguenther@suse.de>
PR middle-end/60221
* tree-eh.c (execute_cleanup_eh_1): Also cleanup empty EH
regions at -O0.
From-SVN: r207937
gcc/
* config/i386/avx512erintrin.h (_mm_rcp28_round_sd): Swap operands.
(_mm_rcp28_round_ss): Ditto.
(_mm_rsqrt28_round_sd): Ditto.
(_mm_rsqrt28_round_ss): Ditto.
* config/i386/avx512erintrin.h (_mm_rcp14_round_sd): Ditto.
(_mm_rcp14_round_ss): Ditto.
(_mm_rsqrt14_round_sd): Ditto.
(_mm_rsqrt14_round_ss): Ditto.
* config/i386/sse.md (rsqrt14<mode>): Put nonimmediate operand as
the first input operand, get rid of match_dup.
(avx512er_exp2<mode><mask_name><round_saeonly_name>): Set type
attribute to sse.
(<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
Ditto.
(avx512er_vmrcp28<mode><round_saeonly_name>): Put nonimmediate
operand as the first input operand, set type attribute.
(<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
Set type attribute.
(avx512er_vmrsqrt28<mode><round_saeonly_name>): Put nonimmediate
operand as the first input operand, set type attribute.
testsuite/gcc/
* gcc.target/i386/avx512er-vrcp28sd-2.c: Distinguish src1 and src2.
* gcc.target/i386/avx512er-vrcp28ss-2.c: Call correct intrinsic.
* gcc.target/i386/avx512er-vrsqrt28sd-2.c: Distinguish src1 and src2.
* gcc.target/i386/avx512er-vrsqrt28ss-2.c: Ditto.
* gcc.target/i386/avx512f-vrcp14sd-2.c: Fix reference calculation.
* gcc.target/i386/avx512f-vrcp14ss-2.c: Fix reference calculation.
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
From-SVN: r207932
PR c/37743
* c-common.c (c_common_nodes_and_builtins): When initializing
c_uint{16,32,64}_type_node, also set corresponding
uint{16,32,64}_type_node to the same value.
* g++.dg/ext/builtin-bswap1.C: New test.
* c-c++-common/pr37743.c: New test.
From-SVN: r207924
2014-02-19 Michael Hudson-Doyle <michael.hudson@linaro.org>
PR target/59799
* config/aarch64/aarch64.c (aarch64_pass_by_reference): The rules for
passing arrays in registers are the same as for structs, so remove the
special case for them.
From-SVN: r207908
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch5.adb: Inhibit iterator rewriting in ASIS mode.
2014-02-19 Arnaud Charlet <charlet@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate
an error on out of range priorities if Relaxed_RM_Semantics.
* sem_prag.adb (Analyze_Pragma): Ditto.
2014-02-19 Bob Duff <duff@adacore.com>
* sem_attr.adb (Resolve_Attribute): Detect the case of F'Access
where F denotes the renaming of an enumeration literal, and
issue a specialized error message.
From-SVN: r207906
2014-02-19 Robert Dewar <dewar@adacore.com>
* sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor
reformatting.
2014-02-19 Vincent Celier <celier@adacore.com>
* prj-part.adb (Parse_Single_Project): Use the fully resolved
project path, with all symbolic links resolved, to check if the
same project is imported with a different unresolved path.
* prj-tree.ads (Project_Name_And_Node): Component Canonical_Path
changed to Resolved_Path to reflect that all symbolic links
are resolved.
From-SVN: r207904
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util
from sem_ch13, for use elsewhere.
* sem_ch13.adb (Get_Cursor_Type): Moved to sem_util.
* sem_ch5.adb (Analyze_Iterator_Specification): Set properly the
cursor type on the loop variable when the iteration is over o
formal container.
2014-02-19 Vincent Celier <celier@adacore.com>
* prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration
for an empty Target (Check_Target): Never fail when an empty
target is declared in the configuration project.
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if
the pragma comes fron a predicate aspect and the context is a
record declaration within the scope that declares the type.
2014-02-19 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor clarifications.
* expander.adb, sem_aggr.adb: Add comments.
From-SVN: r207903
* expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: For a bit-field
destination type, extract only the valid bits if the source type is not
integral and has a different mode.
From-SVN: r207902
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that
applies to a subprogram body, the name is the current scope,
rather than being declared in the current scope.
(Analyze_Pragma, case No_Return): Handle properly a No_Return
aspect applied to a subprogram body.
2014-02-19 Ed Schonberg <schonberg@adacore.com>
* sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution
of overloaded subprograms, and fix bug in handling of primitive
operation Element.
2014-02-19 Pascal Obry <obry@adacore.com>
* s-os_lib.adb: Minor reformatting.
2014-02-19 Yannick Moy <moy@adacore.com>
* expander.adb (Expand): Do nothing inside generics.
* sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside
generics.
2014-02-19 Yannick Moy <moy@adacore.com>
* exp_ch2.adb: Remove useless 'with' of unit Uintp.
From-SVN: r207901