1. 14 Oct, 2013 10 commits
    • [multiple changes] · 577ee3a9
      2013-10-14  Robert Dewar  <dewar@adacore.com>
      
      	* exp_prag.adb (Expand_Pragma_Check): Generate proper string
      	for invariant
      	* gnat_rm.texi: Add documentation for pragmas
      	Type_Invariant[_Class]
      	* par-prag.adb: Add entries for pragmas Type_Invariant[_Class]
      	* sem_ch13.adb: Minor reformatting
      	* sem_prag.adb: Implement pragmas Type_Invariant[_Class]
      	* snames.ads-tmpl: Add entries for pragmas Type_Invariant[_Class]
      
      2013-10-14  Johannes Kanig  <kanig@adacore.com>
      
      	* debug.adb: Release now unused debug switches that were only
      	relevant for gnat2why backend, not the frontend
      	* frontend.adb (Frontend) Do not stop when -gnatd.H is present,
      	was unused
      
      From-SVN: r203524
      Arnaud Charlet committed
    • [multiple changes] · d1d81616
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Analyze_Global_Item): Allow
      	references to enclosing formal parameters.
      
      2013-10-14  Thomas Quinot  <quinot@adacore.com>
      
      	* einfo.adb (Equivalent_Type): Add missing case
      	E_Access_Subprogram_Type in guard (for remote access to
      	subprograms) * sem_ch8.adb (Find_Direct_Name, Find_Expanded_Name):
      	Add missing guards to account for the presence of RAS types
      	that have already been replaced with the corresponding fat
      	pointer type.
      
      From-SVN: r203523
      Arnaud Charlet committed
    • aspects.adb: Add an entry in table Canonical_Aspect for Initializes. · 54e28df2
      2013-10-14  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* aspects.adb: Add an entry in table Canonical_Aspect for
      	Initializes.
      	* aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument,
      	Aspect_Names and Aspect_Delay for Initializes.
      	* atree.ads, atree.adb (Ekind_In): New seven argument versions of the
      	routines.
      	* einfo.adb: Remove Refined_State_Pragma from the list of node
      	usage. Finalizer is now at position 28.
      	(Contract): Package
      	and package bodies now have a contract.
      	(Finalizer): Update
      	the assertion and node usage.
      	(Get_Pragma): Update the Is_CDG
      	flag to include Abstract_State, Initializes and Refined_State.
      	(Refined_State_Pragma): Removed.
      	(Set_Contract): Package and
      	package bodies now have a contract.
      	(Set_Finalizer): Update the
      	assertion and node usage.
      	(Set_Refined_State_Pragma): Removed.
      	(Write_Field8_Name): Remove the output for Refined_State_Pragma.
      	(Write_Field24_Name): Remove the output for Finalizer. Package
      	and package bodies now have a contract.
      	(Write_Field28_Name):
      	Add output for Finalizer.
      	* einfo.ads: Update the documentation and usage in entities
      	of attribute Contract. Update the node position and usage in
      	entities of attribute Finalizer. Remove the documentation
      	and usage in entities for attribute Refined_State_Pragma.
      	(Refined_State_Pragma): Removed along with pragma Inline.
      	(Set_Refined_State_Pragma): Removed along with pragma Inline.
      	* par-prag.adb: Add Initializes to the pragmas that do not
      	require special processing by the parser.
      	* sem_ch3.adb (Analyze_Declarations): Add local variable
      	Prag. Update the retrieval of pragma Refined_State. Analyze
      	aspect/pragma Initializes at the end of the visible declarations
      	of the related package.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Contract):
      	Add local variables Ref_Depends and Ref_Global. Analyze
      	pragmas Refined_Global and Refined_Depends in that order.
      	(Analyze_Subprogram_Contract): Add local variables Depends and
      	Global. Analyze pragmas Global and Depends in that order.
      	* sem_ch7.adb (Analyze_Package_Body_Helper): Package
      	bodies now have a contract. Move the analysis of the aspect
      	specifications after the defining entity has been decorated.
      	(Analyze_Package_Declaration): Packages now have a contract. Move
      	the analysis of the aspect specifications after the defining
      	entity has been decorated.
      	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Packages
      	now have contracts.
      	* sem_ch13.adb (Analyze_Pragma): Code cleanup for aspect
      	Abstract_State. Add processing for aspect Initializes.
      	(Check_Aspect_At_Freeze_Point): Add an entry for Initializes.
      	* sem_prag.adb: Use Get_Pragma_Arg to extract the expression
      	of a pragma argument. Add an entry in table Sig_Flags for
      	Initializes.
      	(Analyze_Initializes_In_Decl_Part): New routine.
      	(Analyze_Pragma): Check the declaration order of pragmas
      	Abstract_State and Initializes. Abstract_State is now part of
      	the package contract. Analyze pragma Initializes. Check for
      	duplicate Refined_State pragma. Refined_State is now part of
      	the package contract.
      	(Check_Declaration_Order): New routine.
      	(Check_Test_Case): Alphabetized.
      	* sem_prag.ads (Analyze_Initializes_In_Decl_Part): New routine.
      	* sem_util.adb (Add_Contract_Item): Rename formal Subp_Id
      	to Id. This routine can now support contracts on packages and
      	package bodies.
      	* sem_util.ads (Add_Contract_Item): Rename formal Subp_Id to
      	Id. Update comment on usage.
      	* sinfo.ads: Update the usage of N_Contract nodes.
      	* snames.ads-tmpl: Add predefined name Initializes. Add new
      	pragma id for Initializes.
      
      From-SVN: r203522
      Hristian Kirtchev committed
    • gimple.c (gimple_canonical_types, [...]): Move to lto/lto.c · 83fd5d11
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	* gimple.c (gimple_canonical_types, canonical_type_hash_cache,
      	iterative_hash_canonical_type, gimple_canonical_type_hash,
      	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
      	gimple_register_canonical_type, print_gimple_types_stats,
      	free_gimple_type_tables): Move to lto/lto.c
      	(gt-gimple.h): Do not include.
      	* gimple.h (gimple_register_canonical_type,
      	print_gimple_types_stats, free_gimple_type_tables): Remove.
      	* Makefile.in (GTFILES): Remove gimple.c.
      
      	lto/
      	* lto-lang.c (lto_init): Do not re-init canonical types here.
      	(lto_register_canonical_types): Move to ...
      	* lto.c (lto_register_canonical_types): ... here.
      	(gimple_canonical_types, canonical_type_hash_cache,
      	iterative_hash_canonical_type, gimple_canonical_type_hash,
      	gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
      	gimple_register_canonical_type): Add canonical type merging machinery
      	moved from gimple.c.
      	(read_cgraph_and_symbols): Init and free canonical type tables
      	here.
      	(print_lto_report_1): Report canonical type table stats here.
      
      From-SVN: r203521
      Richard Biener committed
    • re PR target/58716 ([PATCH] MSP430X check is inverted) · a6dbd0f7
      	PR target/58716
      	* config/msp430/msp430.c (msp430_option_override): Correct thinko
      	scanning for msp430x targets.
      
      From-SVN: r203520
      Travis Snoozy committed
    • re PR bootstrap/58509 (ICE in calc_dfs_tree, at dominance.c:397 during Ada runtime build) · b5ccb9ed
      	PR bootstrap/58509
      	* config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
      	(registers_ok_for_ldd_peep): Move around.
      	* config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
      	* config/sparc/sparc.md (widening peepholes): Use it.
      
      From-SVN: r203518
      Eric Botcazou committed
    • re PR other/58712 (issues found by --enable-checking=valgrind) · fd7e5084
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/58712
      	PR middle-end/55358
      	* gimple.c (iterative_hash_canonical_type): Make sure to
      	record the hash into the correct hashtable slot.
      
      From-SVN: r203517
      Richard Biener committed
    • re PR tree-optimization/58640 (wrong code (segfaults) at -O3 on x86_64-linux-gnu) · d19d091c
      2013-10-14  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/58640
      	* gcc.c-torture/execute/pr58640-2.c: New testcase.
      
      From-SVN: r203516
      Richard Biener committed
    • env.c (parse_bind_var): Initialize value to avoid (false positive) warning. · c8673881
      	* env.c (parse_bind_var): Initialize value to avoid
      	(false positive) warning.
      
      From-SVN: r203514
      Jakub Jelinek committed
    • Daily bump. · 9e58eee7
      From-SVN: r203511
      GCC Administrator committed
  2. 13 Oct, 2013 12 commits
    • Make-lang.in (ada/%.o): Replace individual rules with generic rule and add $(POSTCOMPILE). · 8219336f
      	* gcc-interface/Make-lang.in (ada/%.o): Replace individual rules with
      	generic rule and add $(POSTCOMPILE).
      	(ADA_DEPS): New.
      	(.adb.o): Add @$(ADA_DEPS).
      	(.ads.o): Likewise.
      	(ada/a-except.o): Likewise.
      	(ada/s-excdeb.): Likewise.
      	(ada/s-assert.o): Likewise.
      	(ada/a-tags.o): Likewise.
      	(ada_generated_files): New variable.
      	Use them as dependency order for GNAT1_ADA_OBJS and GNATBIND_OBJS.
      	(ADA_DEPFILES): New variable.
      	Include them.
      	(ada_OBJS): Define.
      
      Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
      
      From-SVN: r203508
      Nicolas Roche committed
    • decl.c (gnat_to_gnu_entity): Force all local variables with aggregate types in… · f036807a
      decl.c (gnat_to_gnu_entity): Force all local variables with aggregate types in memory if not optimizing.
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force all local
      	variables with aggregate types in memory if not optimizing.
      
      From-SVN: r203507
      Eric Botcazou committed
    • [multiple changes] · d67f5bbb
      2013-10-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_prag.adb (Check_Mode): Do
      	not emit an error when we are looking at inputs and
      	the item is an unconstrained or tagged out parameter.
      	(Check_Mode_Restriction_In_Enclosing_Context): Use Get_Pragma
      	to find whether the context is subject to aspect/pragma Global.
      	(Collect_Subprogram_Inputs_Outputs): Unconstrained or tagged
      	out parameters are now considered inputs. Use Get_Pragma to
      	find wheher the subprogram is subject to aspect/pragma Global.
      	(Is_Unconstrained_Or_Tagged_Item): New routine.
      
      2013-10-13  Thomas Quinot  <quinot@adacore.com>
      
      	* einfo.ads: Minor reformatting.
      	* gcc-interface/Make-lang.in: Update dependencies.
      
      From-SVN: r203506
      Arnaud Charlet committed
    • gnat_rm.texi: Add documentation for pragmas Pre[_Class] Post[_Class]. · ff7a7e12
      2013-10-13  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_rm.texi: Add documentation for pragmas Pre[_Class]
      	Post[_Class].
      	* par-ch2.adb (Skip_Pragma_Semicolon): Handle extra semicolon nicely.
      	* par-prag.adb: Add entries for pragmas Pre[_Class] and
      	Post[_Class].
      	* sem_prag.adb: Add handling of pragmas Pre[_Class] and
      	Post[_Class].
      	* sem_util.adb (Original_Aspect_Name): Moved here from
      	Sem_Prag.Original_Name, and modified to handle pragmas
      	Pre/Post/Pre_Class/Post_Class.
      	* sem_util.ads (Original_Aspect_Name): Moved here from
      	Sem_Prag.Original_Name.
      	* snames.ads-tmpl: Add entries for pragmas Pre[_Class] and
      	Post[_Class].
      
      2013-10-13  Robert Dewar  <dewar@adacore.com>
      
      	* einfo.adb, sem_ch6.adb: Minor reformatting.
      
      From-SVN: r203505
      Robert Dewar committed
    • einfo.adb: Add node/list usage for Refined_State and Refinement_Constituents. · ab8843fa
      2013-10-13  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* einfo.adb: Add node/list usage for Refined_State
      	and Refinement_Constituents.
      	(Get_Pragma): Update the
      	initialization of Is_CDG to include Refined_Global and
      	Refined_Depends. Rename constant Delayed to In_Contract and update
      	all of its occurrences.
      	(Is_Non_Volatile_State): New routine.
      	(Is_Volatile_State): Removed.
      	(Refined_State): New routine.
      	(Refinement_Constituents): New routine.
      	(Set_Refined_State): New routine.
      	(Set_Refinement_Constituents): New routine.
      	(Write_Field8_Name): Add output for Refinement_Constituents.
      	(Write_Field10_Name): Add output for Refined_State.
      	* einfo.ads: Add new synthesized attribute Is_Non_Volatile_State.
      	Remove synthesized attribute Is_Volatile_State.  Add new
      	attributes Refined_State and Refinement_Constituents along with
      	usage in nodes.
      	(Get_Pragma): Update the comment on usage.
      	(Is_Non_Volatile_State): New routine.
      	(Is_Volatile_State): Removed.
      	(Refined_State): New routine and pragma Inline.
      	(Refinement_Constituents): New routine and pragma Inline.
      	(Set_Refined_State): New routine and pragma Inline.
      	(Set_Refinement_Constituents): New routine and pragma Inline.
      	* elists.ads, elists.adb (Clone): Removed.
      	(New_Copy_Elist): New routine.
      	(Remove): New routine.
      	* sem_ch3.adb (Analyze_Declarations): Use Defining_Entity
      	to get the entity of the subprogram [body].
      	(Analyze_Object_Declaration): Add initialization for
      	Refined_State.
      	* sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing
      	for Refined_Global and Refined_Depends. Emit an error when
      	the body requires Refined_Global, but the aspect/pragma is
      	not present.
      	* sem_ch6.ads (Analyze_Subprogram_Body_Contract): Change
      	procedure signature and add comment on usage.
      	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
      	for aspect Refined_Global.
      	* sem_prag.adb (Analyze_Abstract_State): Add initialization
      	of attributes Refined_State and Refinement_Constituents.
      	(Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part,
      	Analyze_Contract_Cases_In_Decl_Part): Remove local
      	constant Arg1.
      	(Analyze_Pragma): Add processing for pragma
      	Refined_Global. The analysis of Refined_Post and Refined_Pre
      	has been merged. Update an error message in the processing of
      	pragma Refined_State.
      	(Analyze_Refined_Global_In_Decl_Part): Provide implementation.
      	(Analyze_Refined_Pragma): New routine.
      	(Analyze_Refined_Pre_Post_Condition): Removed.
      	(Analyze_Refined_State_In_Decl_Part): Update the call to Clone.
      	(Analyze_Refinement_Clause): Make State_Id visible to all
      	nested subprogram.
      	(Check_Matching_Constituent): Establish
      	a relation between a refined state and its constituent.
      	(Collect_Hidden_States_In_Decls): Remove ??? comment. Look at
      	the entity of the object declaration to establish its kind.
      	* sem_util.adb: Alphabetize with and use clauses.
      	(Contains_Refined_State): New routine.
      	* sem_util.ads (Contains_Refined_State): New routine.
      
      From-SVN: r203504
      Hristian Kirtchev committed
    • [multiple changes] · ad0d71b5
      2013-10-13  Thomas Quinot  <quinot@adacore.com>
      
      	* scos.ads: Minor documentation clarification.
      
      2013-10-13  Thomas Quinot  <quinot@adacore.com>
      
      	* s-oscons-tmplt.c (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC when
      	building on AIX 5.3 or later, and to CLOCK_REALTIME on older
      	versions of AIX.
      	* init.c (pthread_condattr_setclock): Remove now useless weak symbol.
      	* thread.c(__gnat_pthread_condattr_setup): Remove bogus AIX 5.2
      	compatibility shim.
      	* s-osinte-aix.ads(clock_id_t): Fix C mapping (this is a 64-bit
      	type).
      	(clock_gettime): Import from C runtime library.
      	* s-osinte-aix.adb (clock_gettime): Remove bogus emulation body,
      	this routine is provided by the system in current supported
      	versions of AIX.
      
      2013-10-13  Robert Dewar  <dewar@adacore.com>
      
      	* sem_ch3.adb: Minor reformatting.
      
      2013-10-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* freeze.adb (Freeze_Entity): For a function whose return type
      	is incomplete, do not replace the type with the full view if the
      	type is a limited view.  In that case the full view appears in a
      	different unit, and the back-end will retrieve it at the proper
      	elaboration point.
      
      2013-10-13  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_Call): Do not introduce temporaries for
      	actuals.
      
      From-SVN: r203503
      Arnaud Charlet committed
    • [multiple changes] · cf895a01
      2013-10-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb: in Ada 2012 access_to_function types can have
      	in-out parameters.
      	(Derived_Type_Declaration): SPARK restriction
      	must be flagged on the original node, since it may have been
      	written as a subtype declaration.
      	(Analyze_Subtype_Declaration): Do not enter name of
      	entity in declaration if it is the current entity, because it may
      	have been inserted in a previous analysis and it appears in the
      	else_part of an if-statement that is rewritten during expansion.
      
      2013-10-13  Yannick Moy  <moy@adacore.com>
      
      	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove procedure.
      	(Expand_SPARK): Remove call to Expand_SPARK_N_Attribute_Reference and
      	Expand_SPARK_N_Simple_Return_Statement.
      	(Expand_SPARK_N_Simple_Return_Statement,
       	Expand_SPARK_Simple_Function_Return): Remove procedures.
      
      From-SVN: r203502
      Arnaud Charlet committed
    • [multiple changes] · 409274f1
      2013-10-13  Vincent Celier  <celier@adacore.com>
      
      	* gnat_ugn.texi: Minor editing.
      
      2013-10-13  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (Check_Abstract_Overriding): If a synchronized
      	operation implements an interface primitive, mark the operation
      	as referenced, to prevent usually spurious messages about unused
      	entities: such operations are called in dispatching select
      	statements that are not visible to the compiler.
      
      From-SVN: r203501
      Arnaud Charlet committed
    • re PR rtl-optimization/58662 (wrong code at -O2 for dumb condition) · 3246afaa
      	PR rtl-optimization/58662
      	* combine.c (try_combine): Take into account death nodes on I2 when
      	splitting a PARALLEL of two independent SETs.  Fix dump message.
      
      From-SVN: r203498
      Eric Botcazou committed
    • Daily bump. · 713b26d0
      From-SVN: r203495
      GCC Administrator committed
  3. 12 Oct, 2013 9 commits
    • re PR target/51244 ([SH] Inefficient conditional branch and code around T bit) · 5d30dc5b
      	PR target/51244
      	* config/sh/sh_treg_combine.cc: New SH specific RTL pass.
      	* config.gcc (SH extra_objs): Add sh_ifcvt.o.
      	* config/sh/t-sh (sh_treg_combine.o): New entry.
      	* config/sh/sh.c (sh_fixed_condition_code_regs): New function that
      	implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
      	(register_sh_passes): New function.  Register sh_treg_combine pass.
      	(sh_option_override): Invoke it.
      	(sh_canonicalize_comparison): Handle op0_preserve_value.
      	* sh.md (*cbranch_t"): Do not try to optimize missed test and branch
      	opportunities.  Canonicalize branch condition.
      	(nott): Allow only if pseudos can be created for non-SH2A.
      
      	PR target/51244
      	* gcc.dg/torture/p51244-21.c: New.
      	* gcc.target/sh/pr51244-20.c: New.
      	* gcc.target/sh/pr51244-20-sh2a.c: New.
      
      From-SVN: r203492
      Oleg Endo committed
    • Slightly related to PR/58645: · 585a0b99
      	* gnat.dg/specs/linker_section.ads: Update test.
      
      From-SVN: r203490
      Arnaud Charlet committed
    • ChangeLog: Fix whitespace. · adcfd489
      	* ChangeLog: Fix whitespace.
      	* testsuite/ChangeLog: Ditto.
      
      From-SVN: r203489
      Uros Bizjak committed
    • Truncate x32 DImode TLS address to a SImode register · 37d1c5db
      gcc/
      
      	PR target/58690
      	* config/i386/i386.c (ix86_copy_addr_to_reg): New function.
      	(ix86_expand_movmem): Replace copy_addr_to_reg with
      	ix86_copy_addr_to_reg.
      	(ix86_expand_setmem): Likewise.
      
      gcc/testsuite/
      
      	PR target/58690
      	* gcc.target/i386/pr58690.c: New test
      
      From-SVN: r203486
      H.J. Lu committed
    • i386.c (ix86_expand_sse_compare_and_jump): Use mode provided by… · b86a70ff
      i386.c (ix86_expand_sse_compare_and_jump): Use mode provided by ix86_fp_compare_mode instead of CCFPUmode.
      
      	* config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
      	provided by ix86_fp_compare_mode instead of CCFPUmode.
      
      testsuite/:
      	* gcc.target/i386/builtin-ucmp.c: New test.
      
      From-SVN: r203483
      Alexander Monakov committed
    • re PR libgomp/58691 (OpenMP 4: Surprising results with OMP_PLACES=) · f89163fd
      	PR libgomp/58691
      	* config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
      	to check variable.
      	(gomp_init_num_threads): Move i variable declaration into
      	#ifdef CPU_ALLOC_SIZE block.
      	* config/linux/affinity.c (gomp_affinity_init_level): Test
      	gomp_places_list_len == 0 rather than gomp_places_list == 0
      	when checking for topology reading error.
      	* team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
      	* env.c (parse_affinity): Add ignore argument, if true, don't populate
      	gomp_places_list, only parse env var and always return false.
      	(parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
      	(initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
      	vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
      	and either of these variables were parsed correctly into a places
      	list.
      
      From-SVN: r203479
      Jakub Jelinek committed
    • [AArch64] Fix early-clobber operands to vtbx[1,3] · 6e1d5961
      gcc/
      	* config/aarch64/arm_neon.h
      	(vtbx<1,3>_<psu>8): Fix register constriants.
      
      From-SVN: r203478
      James Greenhalgh committed
    • cp-demangle.c (d_name): Demangle local-source-names. · ea0882a0
      2013-10-11  Paul Pluzhnikov  <ppluzhnikov@google.com>
      
      	* cp-demangle.c (d_name): Demangle local-source-names.
      	* testsuite/demangle-expected: New test.
      
      From-SVN: r203476
      Paul Pluzhnikov committed
    • Daily bump. · 5954261c
      From-SVN: r203475
      GCC Administrator committed
  4. 11 Oct, 2013 9 commits