Commit Graph

128223 Commits

Author SHA1 Message Date
Paolo Carlini
9ca57929d6 re PR c++/58843 (ICE with broken destructor call)
/cp
2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58843
	* typeck.c (lookup_destructor): Check dtor_type for error_mark_node.

/testsuite
2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58843
	* g++.dg/lookup/crash8.C: New.

From-SVN: r207305
2014-01-30 14:32:25 +00:00
Paolo Carlini
e1b317aecf re PR c++/58649 (ICE with use of enum before declaration)
/cp
2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58649
	* pt.c (lookup_template_class_1): Check start_enum return value
	for error_mark_node.

/testsuite
2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58649
	* g++.dg/template/crash117.C: New.

From-SVN: r207304
2014-01-30 14:28:55 +00:00
Paolo Carlini
cc27b5cd86 decl.c (duplicate_decls, [...]): Use TYPE_IDENTIFIER.
2014-01-30  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (duplicate_decls, typename_hash, typename_compare):
	Use TYPE_IDENTIFIER.
	* error.c (dump_type): Likewise.
	* mangle.c (dump_substitution_candidates): Likewise.

From-SVN: r207303
2014-01-30 14:26:51 +00:00
Jason Merrill
404c2aeaae re PR c++/59633 (ICE with __attribute((vector_size(...))) for enum)
PR c++/59633
gcc/
	* tree.c (walk_type_fields): Handle VECTOR_TYPE.
gcc/cp/
	* decl2.c (attributes_naming_typedef_ok): New.
	* cp-tree.h: Declare it.
	* decl.c (grokdeclarator): Check it.
	* tree.c (no_linkage_check): Handle VECTOR_TYPE.

From-SVN: r207302
2014-01-30 09:21:31 -05:00
Jason Merrill
fc044323f4 re PR c++/59645 (ICE with covariant return and volatile)
PR c++/59645
	* cgraphunit.c (expand_thunk): Copy volatile arg to a temporary.

From-SVN: r207301
2014-01-30 09:18:15 -05:00
Richard Biener
fa337f3ae5 re PR c/59905 (Unfriendly abort when calling a fucntion via a function pointer cast)
2014-01-30  Richard Biener  <rguenther@suse.de>

	PR c/59905
	* c-typeck.c (build_function_call_vec): Do not replace calls
	to a function via an incompatible type with a runtime abort.

	* gcc.dg/cast-function-1.c: Adjust to survive DCE.
	* gcc.dg/call-diag-2.c: Remove expected warnings about calling
	abort.
	* gcc.dg/invalid-call-1.c: Likewise.

From-SVN: r207300
2014-01-30 14:17:02 +00:00
Richard Biener
f30a0ba57a re PR tree-optimization/59951 (bootstrap comparison failure with -O3 for a week)
2014-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59951
	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Skip uses in debug
	insns.

From-SVN: r207299
2014-01-30 11:58:16 +00:00
Savin Zlobec
aad8816f5a re PR target/59784 (Nios2: Wrong code generation for fextsd custom instruction)
2014-01-30  Savin Zlobec  <savin.zlobec@gmail.com>

	PR target/59784
	* config/nios2/nios2.c (nios2_fpu_insn_asm): Fix asm output of
	SFmode to DFmode case.

From-SVN: r207297
2014-01-30 05:51:30 +00:00
Jason Merrill
3c4e06c27a re PR c++/59707 (Crash when using std::map with template class)
PR c++/59707
	* call.c (add_builtin_candidate): Catch dependent types.

From-SVN: r207295
2014-01-30 00:28:52 -05:00
DJ Delorie
3b16363e1a msp430.opt (-minrt): New.
* config/msp430/msp430.opt (-minrt): New.
* config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime
if -minrt given.
(ENDFILE_SPEC): Likewise.

From-SVN: r207294
2014-01-29 21:57:41 -05:00
GCC Administrator
d9e1d3e524 Daily bump.
From-SVN: r207292
2014-01-30 00:16:45 +00:00
Jonathan Wakely
1492a408f9 re PR libstdc++/57226 (The installation of pretty printers is not documented)
PR libstdc++/57226
	* doc/xml/manual/debug.xml (debug.gdb): Update documentation for
	installation and use of python printers.
	* doc/xml/manual/status_cxx2011.xml: Update.
	* doc/html/*: Regenerate.

From-SVN: r207288
2014-01-29 23:46:31 +00:00
Jan Hubicka
3100142a95 ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
* ipa-inline-analysis.c (clobber_only_eh_bb_p): New function.
	(estimate_function_body_sizes): Use it.

From-SVN: r207287
2014-01-29 22:50:22 +00:00
Jason Merrill
0429e06465 re PR c++/59989 (ICE when a template parameter pack is explicitly specified for a function template and provides a complete argument list for a template)
PR c++/59989
	* pt.c (expand_template_argument_pack): Correct
	non_default_args_count calculation.

From-SVN: r207285
2014-01-29 17:12:09 -05:00
Jason Merrill
434e6c8a7c re PR c++/58466 (ICE in cxx_eval_constant_expression)
PR c++/58466
	* pt.c (unify_pack_expansion): Call expand_template_argument_pack.

From-SVN: r207283
2014-01-29 15:54:21 -05:00
Paolo Carlini
1200933ccc re PR c++/58561 ([c++11] ICE using declaration of function with auto in return type)
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58561
	* dwarf2out.c (is_cxx_auto): New.
	(is_base_type): Use it.
	(gen_type_die_with_usage): Likewise.

/testsuite
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58561
	* g++.dg/cpp1y/auto-fn23.C: New.

From-SVN: r207282
2014-01-29 20:54:09 +00:00
Jason Merrill
7651c65685 re PR c++/59956 (internal compiler error: unexpected expression ‘P_S’ of kind template_parm_index)
PR c++/59956
	* friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
	have a friend template in a class template.
	* pt.c (tsubst_friend_function): Look through it.
	(push_template_decl_real): A friend member template is
	primary.

From-SVN: r207281
2014-01-29 15:44:50 -05:00
Jonathan Wakely
d530142ddb re PR libstdc++/21609 (array_allocator vs rebind & templated constructor)
PR libstdc++/21609
	* include/ext/array_allocator.h: Add deprecated attribute.

From-SVN: r207280
2014-01-29 20:43:44 +00:00
Paolo Carlini
e8902891fb re PR c++/58846 (ICE redeclaring __dso_handle)
/cp
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58846
	* decl.c (get_dso_handle_node): Don't crash if dso_handle_node
	== error_mark_node.

/testsuite
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58846
	* g++.dg/init/dso_handle2.C: New.

From-SVN: r207276
2014-01-29 17:58:37 +00:00
Paolo Carlini
e1e30986f9 re PR c++/58674 ([c++11] ICE with template using declaration)
/cp
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58674
	* pt.c (instantiate_template_1): Check for error_mark_node the second
	argument too.

/testsuite
2014-01-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58674
	* g++.dg/cpp0x/pr58674.C: New.

From-SVN: r207275
2014-01-29 17:54:51 +00:00
Kirill Yukhin
53d7df9351 re PR tree-optimization/59617 ([vectorizer] ICE in vectorizable_mask_load_store with AVX-512F's gathers enabled.)
gcc/testsuite/

        PR target/59617
	* gcc.target/i386/avx512f-gather-2.c: Remove XPASS.
	* gcc.target/i386/avx512f-gather-5.c: Ditto.

From-SVN: r207274
2014-01-29 17:35:19 +00:00
Jason Merrill
1c80c82d7a * g++.dg/parse/enum5.C: Allow for -fshort-enums.
From-SVN: r207273
2014-01-29 12:13:16 -05:00
Jason Merrill
1d0995526b * g++.dg/debug/dwarf2/auto1.C: Handle other comment characters.
From-SVN: r207272
2014-01-29 12:13:09 -05:00
Jason Merrill
8ae90330f0 re PR c++/59916 (constructors and destructors can cause "control reaches end of non-void function" warnings with -Os)
PR c++/59916
	* optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
	cdtor_returns_this case.

From-SVN: r207271
2014-01-29 12:13:01 -05:00
Arnaud Charlet
4f7c83caa3 [multiple changes]
2014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post.
	* einfo.ads (Get_Pragma): Update the comment on special pragmas
	handled by this routine.
	* sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post
	to the contract of the related subprogram body.
	* sem_util.adb (Add_Contract_Item): Handle the insertion of
	pragma Refined_Post into the contract of a subprogram body.
	* sinfo.ads Update the documentation of node N_Contract.
	* sem_res.adb (Resolve_Entity_Name): Add a guard
	to detect abstract states and variables only when checking the
	SPARK 2014 rules concerning volatile object placement.

2014-01-29  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance,
	null is compatible with any access type.

From-SVN: r207269
2014-01-29 17:23:31 +01:00
Hristian Kirtchev
385e1a992a sem_util.adb (Find_Placement_In_State_Space): Assume that the default placement is not in a package.
2014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Find_Placement_In_State_Space): Assume that the default
	placement is not in a package.

From-SVN: r207268
2014-01-29 17:21:25 +01:00
Arnaud Charlet
159a5104f7 [multiple changes]
2014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Has_Enabled_Property): Compare the character field of
	the sole property.

2014-01-29  Robert Dewar  <dewar@adacore.com>

	* sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb,
	vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb,
	sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting.

From-SVN: r207267
2014-01-29 17:19:53 +01:00
Robert Dewar
87e9b93580 sem_util.ads, [...] (In_Pragma_Expression): New function.
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* sem_util.ads, sem_util.adb (In_Pragma_Expression): New function.
	* sem_warn.adb (Check_References): Suppress warnings if inside
	Initial_Condition pragma.

From-SVN: r207266
2014-01-29 17:17:48 +01:00
Yury Gribov
69b0996357 mklog: Improve support of context diffs.
2014-01-29  Yury Gribov  <y.gribov@samsung.com>

	* mklog: Improve support of context diffs.

From-SVN: r207265
2014-01-29 16:17:22 +00:00
Arnaud Charlet
061e86a821 Update comments.
From-SVN: r207264
2014-01-29 17:16:51 +01:00
Arnaud Charlet
a4ab03b018 Code clean up.
From-SVN: r207263
2014-01-29 17:16:34 +01:00
Bill Schmidt
68d3bacf0d rs6000.c (altivec_expand_vec_perm_const): Use CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
gcc:

2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000.c (altivec_expand_vec_perm_const):  Use
	CODE_FOR_altivec_vmrg*_direct rather than CODE_FOR_altivec_vmrg*.
	* config/rs6000/vsx.md (vsx_mergel_<mode>): Adjust for
	-maltivec=be with LE targets.
	(vsx_mergeh_<mode>): Likewise.
	* config/rs6000/altivec.md (UNSPEC_VMRG[HL]_DIRECT): New
	unspecs.
	(mulv8hi3): Use gen_altivec_vmrg[hl]w_direct.
	(altivec_vmrghb): Replace with define_expand and new
	*altivec_vmrghb_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghb_direct): New define_insn.
	(altivec_vmrghh): Replace with define_expand and new
	*altivec_vmrghh_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghh_direct): New define_insn.
	(altivec_vmrghw): Replace with define_expand and new
	*altivec_vmrghw_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrghw_direct): New define_insn.
	(*altivec_vmrghsf): Adjust for endianness.
	(altivec_vmrglb): Replace with define_expand and new
	*altivec_vmrglb_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglb_direct): New define_insn.
	(altivec_vmrglh): Replace with define_expand and new
	*altivec_vmrglh_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglh_direct): New define_insn.
	(altivec_vmrglw): Replace with define_expand and new
	*altivec_vmrglw_internal insn; adjust for -maltivec=be with LE
	targets.
	(altivec_vmrglw_direct): New define_insn.
	(*altivec_vmrglsf): Adjust for endianness.
	(vec_widen_umult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_umult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_smult_hi_v16qi): Use gen_altivec_vmrghh_direct.
	(vec_widen_smult_lo_v16qi): Use gen_altivec_vmrglh_direct.
	(vec_widen_umult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_umult_lo_v8hi): Use gen_altivec_vmrglw_direct.
	(vec_widen_smult_hi_v8hi): Use gen_altivec_vmrghw_direct.
	(vec_widen_smult_lo_v8hi): Use gen_altivec_vmrglw_direct.

gcc/testsuite:

2014-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.dg/vmx/merge-be-order.c: New.
	* gcc.dg/vmx/merge.c: New.
	* gcc.dg/vmx/merge-vsx-be-order.c: New.
	* gcc.dg/vmx/merge-vsx.c: New.

From-SVN: r207262
2014-01-29 16:12:28 +00:00
Hristian Kirtchev
98b5d2980d sem_prag.adb (Check_Missing_Part_Of): List all values of State_Space_Kind for readability reasons.
2014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_prag.adb (Check_Missing_Part_Of): List all values of
	State_Space_Kind for readability reasons. Do not emit an error on
	a private item when the enclosing package lacks aspect/pragma
	Abstract_State. Do not emit an error on a private package
	instantiation when the corresponding generic template lacks
	visible state.
	(Has_Visible_State): New routine.
	* sem_util.adb (Find_Placement_In_State_Space): The visible
	declarations of any kind of child units in general act as proper
	placement location.

From-SVN: r207261
2014-01-29 17:10:44 +01:00
Robert Dewar
a90bd866a9 a-except-2005.adb, [...]: Minor reformatting.
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb,
	ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads,
	a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads,
	a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb,
	atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb,
	a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb,
	cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb,
	eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb,
	exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb,
	exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb,
	freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb,
	gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads,
	krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads,
	live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb,
	par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
	par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb,
	par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb,
	rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb,
	s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads,
	sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb,
	sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb,
	sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb,
	sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb,
	sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb,
	s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads,
	sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb,
	s-regpat.adb, s-secsta.adb, s-stalib.ads,
	s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb,
	s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb,
	s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads,
	system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb,
	urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting.

From-SVN: r207260
2014-01-29 16:53:48 +01:00
Marcus Shawcroft
f32b006110 [AArch64] Fix sfp-machine.h _FP_I_TYPE.
2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/sfp-machine.h (_FP_I_TYPE): Define
	as long long.

From-SVN: r207259
2014-01-29 15:45:20 +00:00
Marcus Shawcroft
aef66c94a0 [AArch64] Fix various white space issues.
2014-01-29  Marcus Shawcroft  <marcus.shawcroft@arm.com>

	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate)
	(aarch64_legitimate_address_p, aarch64_class_max_nregs): Adjust
	whitespace.

From-SVN: r207258
2014-01-29 15:42:37 +00:00
Arnaud Charlet
0d66cee51d [multiple changes]
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* expander.adb: Minor reformatting.

2014-01-29  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to
	previous patch.

From-SVN: r207257
2014-01-29 16:39:03 +01:00
Arnaud Charlet
b7cb4a617f [multiple changes]
2014-01-29  Javier Miranda  <miranda@adacore.com>

	* exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code
	that checks if an interface types defines the predefined "="
	function because the compiler was erroneously not generating the
	predefined "=" primitive as soon as the name of some interface
	primitive is "=" (formals were not checked).

2014-01-29  Ed Schonberg  <schonberg@adacore.com>

	* expander.adb (Expander): In GNATprove mode, do not process
	transient scopes: they are in general not created in this mode,
	and an attempt to examine them will lead to constraint errors when
	processing configuration pragmas that have analyzable expressions.

From-SVN: r207256
2014-01-29 16:37:54 +01:00
Vincent Celier
35d4d8995a clean.adb (Gnatclean): Fail if main project is an aggregate project or if...
2014-01-29  Vincent Celier  <celier@adacore.com>

	* clean.adb (Gnatclean): Fail if main project is an aggregate
	project or if there is an aggregate library project in the
	project tree.
	* gnatcmd.adb: Fail if the main project is an aggregate project
	or if there is an aggegate library project in the project tree.
	* make.adb (Initialize): : Fail if main project is an aggregate
	project or if there is an aggregate library project in the
	project tree.
	* makeutl.ads (Aggregate_Libraries_In): New Boolean function.
	* prj-makr.adb (Initialize): Fail if the main project is an
	aggregate project or an aggregate library project.

From-SVN: r207255
2014-01-29 16:36:37 +01:00
Vincent Celier
88de755d13 prj-part.adb (Check_Import_Aggregate): New procedure to check if an imported project is an aggregate project.
2014-01-29  Vincent Celier  <celier@adacore.com>

	* prj-part.adb (Check_Import_Aggregate): New procedure
	to check if an imported project is an aggregate project.
	(Parse_Single_Project): Call Check_Import_Aggregate
	* projects.texi: Document that aggregate projects cannot be
	extended or imported.

From-SVN: r207254
2014-01-29 16:35:09 +01:00
Robert Dewar
d0e6940256 exp_ch9.adb, [...]: Minor reformatting and code clean up.
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor
	reformatting and code clean up.
	* gnat_ugn.texi: Add documentation section on Atomic Variables
	and Optimization.

From-SVN: r207253
2014-01-29 16:34:14 +01:00
Arnaud Charlet
5627964c4a [multiple changes]
2014-01-29  Hristian Kirtchev  <kirtchev@adacore.com>

	* einfo.adb Flag264 is now unused.
	(Has_Body_References): Removed.
	(Set_Has_Body_References): Removed.
	(Write_Entity_Flags): Remove the output for flag Has_Body_References.
	* einfo.ads Update the comment on usage of attribute
	Body_References. Remove attribute Has_Body_References and its
	usage in nodes.
	(Has_Body_References): Removed along with pragma Inline.
	(Set_Has_Body_References): Removed along with pragma Inline.
	* sem_prag.adb (Analyze_Global_Item): Move the call to
	Record_Possible_Body_Reference in the state related checks
	section. Add a comment intended function.
	(Analyze_Input_Output): Move the call to Record_Possible_Body_Reference
	in the state related checks section. Add a comment intended function.
	(Analyze_Refinement_Clause): Cleanup the illegal body reference
	reporting. Add a comment on timing of error reporting.
	(Record_Possible_Body_Reference): Reimplement the routine.

2014-01-29  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for
	unit-based languages.
	(Mains.Complete_Mains.Do_Complete): Use the source file project
	tree when calling Find_File_Add_Extension. Use the correct
	project name when reporting an error.

From-SVN: r207252
2014-01-29 16:32:42 +01:00
Hristian Kirtchev
d7af5ea5e1 2014-01-29 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb Add an entry for aspect Part_Of in table
	Canonical_Aspect.
	* aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id,
	Aspect_Argument, Aspect_Names and Aspect_Delay.
	* atree.h Define Elist9.
	* atree.adb (Elist9): New routine.
	(Set_Elist9): New routine.
	* atree.ads (Elist9): New routine.
	(Set_Elist9): New routine.
	* einfo.adb Add Part_Of_Constituents and Encapsulating_State to
	the list of node usage.  Remove Refined_State from the list of
	node usage.
	(Encapsulating_State): New routine.
	(Get_Pragma):
	Handle pragma Part_Of; (Part_Of_Constituents): New routine.
	(Refined_State): Removed.
	(Set_Encapsulating_State): New routine.
	(Set_Part_Of_Constituents): New routine.
	(Set_Refined_State): Removed.
	(Write_Field9_Name): Add an entry
	for Part_Of_Constituents (Write_Field10_Name): Add an entry for
	Encapsulating_State. Remove the entry for Refined_State.
	* einfo.ads Add new attributes Encapsulating_State
	and Part_Of_Constituents alond with their usage in
	entities. Remove attribute Refined_State along with its
	usage in entities.
	(Encapsulating_State): New routine and
	pragma Inline.	(Get_Pragma): Update the comment on usage.
	(Part_Of_Constituents): New routine and pragma Inline.
	(Refined_State): Removed along with pragma Inline.
	(Set_Encapsulating_State): New routine and pragma Inline.
	(Set_Part_Of_Constituents): New routine and pragma Inline.
	(Set_Refined_State): Removed along with pragma Inline.
	* par-prag.adb Pragma Part_Of does not need any special processing
	by the parser.
	* sem_ch3.adb (Analyze_Declarations): Remove local variables
	Body_Id and Prag. Call separate routines to analyze the
	contract of a package [body].
	(Analyze_Object_Contract):
	Update the comment on usage. Remove local variables
	Items and Nam. Use Get_Pragma rather than traversing the
	classification list.  Verify whether the lack of indicator
	Part_Of agrees with the placement of the variable in state space.
	(Analyze_Object_Declaration): Initialize the encapsulating state
	of a variable.	(Requires_State_Refinement): Moved to sem_util.
	* sem_ch7.adb (Analyze_Package_Body_Contract): New routine.
	(Analyze_Package_Contract): New routine.
	* sem_ch7.ads (Analyze_Package_Body_Contract): New routine.
	(Analyze_Package_Contract): New routine.
	* sem_ch10.adb (Decorate_State): Initialize the encapsulating
	state and Part_Of constituents.
	* sem_ch13.adb (Analyze_Aspect_Specifications):
	Add processing for aspect Part_Of. Update all
	calls to Decorate_Delayed_Aspect_And_Pragma.
	(Check_Aspect_At_Freeze_Point): Aspect Part_Of does
	not need any special processing at freeze time.
	(Decorate_Delayed_Aspect_And_Pragma): Renamed to
	Decorate_Aspect_And_Pragma.  Add formal parameter Delayed and
	update the associated comment.
	* sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags.
	(Analyze_Abstract_State): Add new global variable State_Id. Remove
	local constants Errors and Loc. Remove local variables Is_Null
	and State_Nam. Create the entity of the abstract state on the
	spot, before all remaining checks are performed. Verify that a
	missing Part_Of option agrees with the placement of the abstract
	state within the state space.
	(Analyze_Depends_In_Decl_Part):
	Add new global variables Constits_Seen and States_Seen. Check
	that a state and a corresponding constituent do not appear
	in pragma [Refined_]Depends.
	(Analyze_Global_In_Decl_Part):
	Add new global variables Constits_Seen and States_Seen. Check
	that a state and a corresponding constituent do not appear
	in pragma [Refined_]Global.
	(Analyze_Global_Item):
	Remove the now obsolete code that deals with Part_Of.
	Add the entity of the global item to the list of processed
	items.	(Analyze_Initializes_In_Decl_Part): Add new global
	variables Constits_Seen and States_Seen. Check that a state
	and a corresponding constituent do not appear in pragma
	Initializes.
	(Analyze_Initialization_Item): Add the entity
	of the initialization item to the list of processed items.
	(Analyze_Input_Item): Add the entity of the initialization
	item to the list of processed items.
	(Analyze_Input_Output):
	Remove the now obsolete code that deals with Part_Of.  Add the
	entity of the input/output to the list of processed items.
	(Analyze_Part_Of): New routine.
	(Analyze_Part_Of_Option): Remove
	local constant Par_State. Add local constant Encaps and local
	variables Encaps_Id and Legal. Use Analyze_Part of to analyze
	the option. Turn the related state into a Part_Of constituent
	if the option is legal.
	(Analyze_Pragma): Add processing
	for pragma Part_Of.
	(Analyze_Refined_State_In_Decl_Part):
	Remove global constants Pack_Body and Spec_Id. Remove
	global variables Abstr_States and Hidden_States. Add new
	global variables Available_States, Body_Id, Body_States and
	Spec_Id. Add new local constant Body_Decl. Reimplement the
	logic that extracts the states available for refinement from
	the related package and the body hidden states of the said
	package.
	(Analyze_Refinement_Clause): Add local variable Part_Of_Constits.
	(Check_Applicable_Policy): Alphabetize body.
	(Check_Dependency_Clause): Replace Refined_State
	with Encapsulating_State.
	(Check_Matching_Constituent):
	Reimplement the logic that determines whether an item is a valid
	/ invalid constituent of the current refined state. Return when
	a construct does not denote a valid abstract state. Extract the
	list of Part_Of constituents for further analysis. Check that all
	Part_Of constituents of a state have been used in its refinement.
	(Check_Matching_State): Update the comment on usage. Operate
	on the list of available states.
	(Check_Missing_Part_Of): New routine.
	(Check_Refined_Global_Item): Replace Refined_State
	with Encapsulating_State.
	(Check_State_And_Constituent_Use): New routine.
	(Create_Abstract_State): New routine.
	(Is_Matching_Input): Replace Refined_State with Encapsulating_State.
	(Is_Part_Of): Removed.
	(Collect_Body_States): New routine.
	(Collect_Constituent): Replace Refined_State with Encapsulating_State.
	(Collect_Hidden_States): Removed.
	(Report_Unrefined_States): Change the profile of the procedure along
	with the comment on usage.
	(Report_Unused_Constituents): New routine.
	(Report_Unused_Hidden_States): Removed.
	(Report_Unused_States): New routine.
	* sem_prag.ads (Check_Missing_Part_Of): New routine.
	* sem_util.adb (Add_Contract_Item): Pragma Part_Of can now
	appear in the classification pragmas of a package instantiation
	or a variable.
	(Find_Placement_In_State_Space): New routine.
	(Is_Child): Removed.
	(Is_Child_Or_Sibling): Remove formal
	parameter Private_Child. Remove the private child checks.
	(Requires_State_Refinement): Moved from sem_ch3.
	* sem_util.ads Add new type State_Space_Kind along with
	comment on its usage and values.
	(Add_Contract_Item): Update the comment on usage.
	(Find_Body_Discriminal): Alphabetize spec.
	(Find_Placement_In_State_Space): New routine.
	(Is_Child_Or_Sibling): Remove formal parameter Private_Child
	and update the comment on usage.
	(Requires_State_Refinement): Moved from sem_ch3.
	* sinfo.ads: Update the documentation of N_Contract.
	* snames.ads-tmpl The predefined name for Part_Of is now used
	to denote a pragma. Add Pragma_Id for Part_Of.

From-SVN: r207251
2014-01-29 16:30:21 +01:00
Arnaud Charlet
0830210cff [multiple changes]
2014-01-29  Emmanuel Briot  <briot@adacore.com>

	* s-regexp.adb (Create_Secondary_Table): Automatically grow the state
	machine as needed.
	(Dump): New subprogram.

2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add
	Expand_Entry_Declaration to factorize code.

From-SVN: r207250
2014-01-29 16:27:54 +01:00
Jonathan Wakely
85c13695d2 Fix ChangeLog date of my previous commit.
From-SVN: r207249
2014-01-29 15:26:23 +00:00
Ed Schonberg
1ae706185e checks.adb: minor clarification.
2014-01-29  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb: minor clarification.
	* sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit
	search for primitive operations to the entities that immediately
	follow the type declaration.

From-SVN: r207248
2014-01-29 16:26:18 +01:00
Arnaud Charlet
cca7f1076a [multiple changes]
2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Build_Protected_Entry): Do not call
	Complete_Entry_Body anymore.
	* rtsfind.ads (RE_Complete_Single_Entry_Body): Remove.
	* s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove.

2014-01-29  Pierre-Marie Derodat  <derodat@adacore.com>

	* s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty
	string when the Name input bigger than allowed. Adapt the function
	specification.

2014-01-29  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Install_Null_Excluding_Check): Do not emit warning
	if expression is within a case_expression of if_expression.

From-SVN: r207247
2014-01-29 16:25:11 +01:00
Robert Dewar
443dd772d6 exp_ch9.adb, inline.ads: Minor reformatting.
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* exp_ch9.adb, inline.ads: Minor reformatting.

From-SVN: r207246
2014-01-29 16:23:07 +01:00
Arnaud Charlet
4043fd0b3b [multiple changes]
2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions.

2014-01-29  Yannick Moy  <moy@adacore.com>

	* inline.ads (Pending_Body_Info): Add SPARK_Mode and
	SPARK_Mode_Pragma components to be able to analyze generic
	instance.
	* sem_ch12.adb (Analyze_Package_Instantiation,
	Inline_Instance_Body, Need_Subprogram_Instance_Body,
	Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation
	for future analysis of the instance.
	(Instantiate_Package_Body,
	Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode
	from instantiation to analyze the instance.

From-SVN: r207244
2014-01-29 16:21:59 +01:00
Arnaud Charlet
cf3e6845fd [multiple changes]
2014-01-29  Robert Dewar  <dewar@adacore.com>

	* sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code
	reorganization.

2014-01-29  Yannick Moy  <moy@adacore.com>

	* gnat_rm.texi: Update description of SPARK_Mode pragma.

2014-01-29  Tristan Gingold  <gingold@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries.

From-SVN: r207243
2014-01-29 16:20:44 +01:00