Commit Graph

153135 Commits

Author SHA1 Message Date
Jonathan Wakely de3b531c9a PR demangler/80513 check for overflows and invalid characters in thunks
PR demangler/80513
	* cp-demangle.c (d_number): Check for overflow.
	* cplus-dem.c (consume_count): Fix overflow check.
	(gnu_special): Check for underscore after thunk delta.
	* testsuite/demangle-expected: Add tests for overflows and invalid
	characters in thunks.

From-SVN: r247300
2017-04-27 10:44:28 +01:00
Arnaud Charlet e77e24291b [multiple changes]
2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb,
	cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb,
	a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting.

2017-04-27  Tristan Gingold  <gingold@adacore.com>

	* s-excmac-gcc.ads, s-excmac-gcc.adb,
	s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in
	Ada95.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Establish_Transient_Scope): Rewrite
	the loop which detects potential enclosing transient scopes. The
	loop now terminates much earlier as transient scopes are bounded
	by packages and subprograms.

2017-04-27  Claire Dross  <dross@adacore.com>

	* a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to
	allow the use of regular equality over elements in contracts.
	(Cursor): Type is now public so that it can be used in
	model functions.
	(Formal_Model): Ghost package containing
	model functions that are used in subprogram contracts.
	(Current_To_Last): Removed, model functions should be used
	instead.
	(First_To_Previous): Removed, model functions should
	be used instead.
	(Strict_Equal): Removed, model functions
	should be used instead.
	(Append): Default parameter value
	replaced by new wrapper to allow more precise contracts.
	(Insert): Default parameter value replaced by new wrapper to
	allow more precise contracts.
	(Delete): Default parameter
	value replaced by new wrapper to allow more precise contracts.
	(Prepend): Default parameter value replaced by new wrapper to
	allow more precise contracts.
	(Delete_First): Default parameter
	value replaced by new wrapper to allow more precise contracts.
	(Delete_Last): Default parameter value replaced by new wrapper
	to allow more precise contracts.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_spark.adb (Expand_SPARK): Perform specialized expansion
	for object declarations.
	(Expand_SPARK_N_Object_Declaration): New routine.
	* sem_elab.adb (Check_A_Call): Include calls to the
	Default_Initial_Condition procedure of a type under the SPARK
	elaboration checks umbrella.

From-SVN: r247299
2017-04-27 11:28:25 +02:00
Arnaud Charlet 7a71a7c4bb [multiple changes]
2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem.adb (Analyze): Diagnose an illegal iterated component
	association.
	* sem_util.ads, sem_util.adb
	(Diagnose_Iterated_Component_Association): New routine.

2017-04-27  Bob Duff  <duff@adacore.com>

	* adaint.c (__gnat_get_current_dir): Return 0 in length if
	getcwd fails.
	* a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise
	exception if getcwd failed.

2017-04-27  Yannick Moy  <moy@adacore.com>

	* exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost
	entities with special prefix.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* debug.adb Change the documentation of switch -gnatd.s.
	* exp_ch7.adb (Make_Transient_Block): Transient blocks do not need
	to manage the secondary stack when an enclosing scope already
	performs this functionality (aka relaxed management). Switch
	-gnatd.s may be used to force strict management in which case
	the block will manage the secondary stack unconditionally. Add
	a guard to stop the traversal when encountering a package or a
	subprogram scope.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Call): Refine further the handling of
	limited views of return types in function calls. If the function
	that returns a limited view appears in the current unit,
	we do not replace its type by the non-limited view because
	this transformation is performed int the back-end. However,
	the type of the call itself must be the non-limited view, to
	prevent spurious resolution errors.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

	* einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds):
	Removed, proposed implementation using generics for class-wide
	preconditions proved impractical.
	(Class_Wide_Clone): New attribute of subprogram. Designates
	subprogram created for primitive operations with class-wide
	pre/postconditions that contain calls to other primitives. The
	clone holds the body of the original primitive, but the
	pre/postonditions do not apply to it. The original body is
	rewritten as a wrapper for a call to the clone.
	(Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If
	the flag is set, no code for the corresponding pre/postconditions
	is inserted into its body.

2017-04-27  Bob Duff  <duff@adacore.com>

	* exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore
	Scalar_Storage_Order if -gnatI is given.
	* sem_prag.adb (Analyze_Pragma): Ignore
	Default_Scalar_Storage_Order if -gnatI is given.

From-SVN: r247298
2017-04-27 11:22:04 +02:00
Claire Dross 394fa9f54a a-cofuba.ads (Add): Take as an additional input parameter the position where the element should be...
2017-04-27  Claire Dross  <dross@adacore.com>

	* a-cofuba.ads (Add): Take as an additional input parameter
	the position where the element should be inserted.
	(Remove): New function that removes an element from the container.
	* a-cofuma.ads (Add): Adapt to the new API of Base.Add.
	* a-cofuse.ads (Add): Adapt to the new API of Base.Add.
	(Remove): New function that removes an element from a set.
	* a-cofuve.ads (Add): Adapt to the new API of Base.Add.
	(Remove): New function that removes an element from a sequence.
	(Insert): New function that adds anywhere in a sequence.

From-SVN: r247297
2017-04-27 11:10:44 +02:00
Arnaud Charlet 11775988d5 [multiple changes]
2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Generate_Range_Check): Revert previous change.

2017-04-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_util.adb: Minor reformatting/rewording.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* lib-xref.adb (Generate_Reference): The use
	of attribute 'Result is not considered a violation of pragma
	Unreferenced.

2017-04-27  Justin Squirek  <squirek@adacore.com>

	* cstand.adb (Create_Standard): Correctly set
	Directly_Designated_Type for Any_Access.
	* sem_type.adb (Covers): Minor grammar fixes.

2017-04-27  Bob Duff  <duff@adacore.com>

	* sem_attr.adb: Minor cleanup.

2017-04-27  Claire Dross  <dross@adacore.com>

	* a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New
	private child of Ada.Containers used to implement all functional
	containers.
	* a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New
	child of Ada.Containers. It provides functional indefinite unbounded
	maps which can be used as high level models for specification
	of data structures.
	* a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New
	child of Ada.Containers. It provides functional indefinite unbounded
	sets which can be used as high level models for specification
	of data structures.
	* a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New
	child of Ada.Containers.  It provides functional indefinite unbounded
	vectors which can be used as high level models for specification
	of data structures.
	* Makefile.rtl: Add new packages.
	* impunit.adb: Add new packages.

From-SVN: r247296
2017-04-27 11:06:47 +02:00
Arnaud Charlet f32eb59134 [multiple changes]
2017-04-27  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch4.adb: Minor reformatting.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Analyze_Associations): minor reformatting.
	(Check_Fixed_Point_Actual): Do not emit a warning on a fixed
	point type actual that has user-defined arithmetic primitives,
	when there is a previous actual for a formal package that defines
	a fixed-point type with the parent user-defined operator.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Generate_Range_Check): Reinstate part of previous change.
	* sem_attr.adb (Resolve_Attribute): Generate a range check when
	the component type allows range checks.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_aux.adb (Is_Generic_Formal): Use original node to locate
	corresponding declaration, because formal derived types are
	rewritten as private extensions.

2017-04-27  Ed Schonberg  <schonberg@adacore.com>

	* sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check
	dimensions of operands if node has been analyzed already, because
	previous analysis and dimension checking will have removed the
	dimension information from the operands.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* debug.adb: Document the use of switch -gnatd.s.
	* einfo.ads Update the documentation on attribute
	Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove
	the uses of these attributes from certain entities.
	* exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry
	which determines whether the block should continue to manage
	the secondary stack.
	(Manages_Sec_Stack): New routine.

2017-04-27  Bob Duff  <duff@adacore.com>

	* atree.ads: Minor edit.

2017-04-27  Hristian Kirtchev  <kirtchev@adacore.com>

	* sinfo.ads: Update the section on Ghost mode. Add
	a section on SPARK mode. Update the placement of section on
	expression functions.

2017-04-27  Bob Duff  <duff@adacore.com>

	* sinput.adb (Get_Source_File_Index): Don't
	assert that S is in the right range in the case where this is
	a .dg file under construction.

2017-04-27  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Check_Result_And_Post_State):
	Handle more precisely each conjunct in expressions formed by
	and'ing sub-expressions.

From-SVN: r247295
2017-04-27 10:51:18 +02:00
Gary Dismukes 0c3ef0cc2a exp_ch4.adb, [...]: Minor typo fix and reformatting.
2017-04-27  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting.

From-SVN: r247294
2017-04-27 10:45:22 +02:00
Jakub Jelinek 985b839307 re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
	(aarch64_function_arg_alignment): Return unsigned int again, but still
	ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
	(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
	Don't emit -Wpsabi note.
	(aarch64_function_arg_boundary): Likewise.
	(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
	caller.
testsuite/
	* g++.dg/abi/pr77728-2.C: Don't expect -Wpsabi notes.

From-SVN: r247292
2017-04-27 09:13:10 +02:00
GCC Administrator db125f9e09 Daily bump.
From-SVN: r247291
2017-04-27 00:16:21 +00:00
Paolo Carlini c8040757dd decl.c (grok_ctor_properties, [...]): Change return type to bool.
2017-04-26  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl.c (grok_ctor_properties, ambi_op_p, unary_op_p): Change
	return type to bool.
	* cp-tree.h (grok_ctor_properties): Update.

From-SVN: r247286
2017-04-26 22:47:20 +00:00
Jonathan Wakely 9425300b41 Improve tests for vector and deque move-assignment
* testsuite/23_containers/deque/allocator/move_assign-2.cc: Improve
	comment. Ensure first test works because allocator type propagates and
	not because is_always_equal is true.
	* testsuite/23_containers/vector/52591.cc: Likewise. Restore original
	testcase that instantiates the move-assignment operator.

From-SVN: r247284
2017-04-26 20:25:30 +01:00
Volker Reichelt a480422d0a parser.c (cp_parser_nested_name_specifier_opt): Add fix-it information to diagnostic of invalid colon in nested-name-specifier.
* parser.c (cp_parser_nested_name_specifier_opt): Add fix-it
        information to diagnostic of invalid colon in nested-name-specifier.

        * g++.dg/diagnostic/nested-name-1.C: New test.

From-SVN: r247282
2017-04-26 16:57:25 +00:00
Nathan Sidwell f88523e5bc tree.h (crc32_unsigned_n): Declare.
* tree.h (crc32_unsigned_n): Declare.
	(crc32_unsigned, crc32_unsigned): Make inline.
	* tree.c (crc32_unsigned_bits): Replace with ...
	(crc32_unsigned_n): ... this.
	(crc32_unsigned, crc32_byte): Remove.
	(crc32_string): Remove unnecessary braces.

From-SVN: r247281
2017-04-26 16:49:10 +00:00
Jan Hubicka ffb77fd6c7 ipa-cp.c (estimate_local_effects): Convert sreal to int.
* ipa-cp.c (estimate_local_effects): Convert sreal to int.
	* ipa-inline-analysis.c (MAX_TIME): Remove.
	(account_size_time): Use sreal for time.
	(dump_inline_summary): Update.
	(estimate_function_body_sizes): Update.
	(estimate_edge_size_and_time): Update.
	(estimate_calls_size_and_time): Update.
	(estimate_node_size_and_time): Update.
	(inline_merge_summary): Update.
	(inline_update_overall_summary): Update.
	(estimate_time_after_inlining): Update.
	(inline_read_section): Update.
	(inline_write_summary): Update.
	* ipa-inline.c (compute_uninlined_call_time): Update.
	(compute_inlined_call_time): Update.
	(recursive_inlining): Update.
	(inline_small_functions): Update.
	(dump_overall_stats): Update.
	* ipa-inline.h: Include sreal.h.
	(size_time_entry): Turn time to sreal.
	(inline_summary): Turn self_time nad time to sreal.

From-SVN: r247277
2017-04-26 10:31:08 +00:00
Jan Hubicka 8a26709650 sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and data-streamer.h
* sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
	data-streamer.h
	(sreal::stream_out, sreal::stream_in): New.
	* sreal.h (sreal::stream_out, sreal::stream_in): Declare.

From-SVN: r247276
2017-04-26 09:57:38 +00:00
Martin Liska f9726baa97 Add prefix to test verification in guality.h
2017-04-26  Martin Liska  <mliska@suse.cz>

	* gcc.dg/guality/guality.h: Add prefix to test verification.

From-SVN: r247275
2017-04-26 09:25:28 +00:00
Tom de Vries 9f06c15a2e Fix comment in contrib/gen_autofdo_event.py
2017-04-26  Tom de Vries  <tom@codesourcery.com>

	* gen_autofdo_event.py: Fix comment.

From-SVN: r247274
2017-04-26 08:53:31 +00:00
GCC Administrator d2056c5779 Daily bump.
From-SVN: r247273
2017-04-26 00:16:21 +00:00
Nathan Sidwell 9f4df8f1a4 * g++.dg/dg.exp (find-cxx-tests): Remove TCL 8.5-ism.
From-SVN: r247269
2017-04-25 22:14:55 +00:00
Jakub Jelinek dadf1fc7ff Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the environment.
* Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
	environment.

From-SVN: r247266
2017-04-25 21:44:17 +02:00
Uros Bizjak 1913c8f63f re PR target/70799 (STV pass does not convert DImode shifts)
PR target/70799
	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
	Handle ASHIFTRT.
	(dimode_scalar_chain::compute_convert_gain): Ditto.
	(dimode_scalar_chain::make_vector_copies): Ditto.
	(dimode_scalar_chain::convert_reg): Ditto.
	(dimode_scalar_chain::convert_insn): Ditto.
	* config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
	(VI248_AVX512BW_1): New mode iterator.
	(<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
	<mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
	mode iterator.

testsuite/ChangeLog:

	PR target/70799
	* gcc.target/i386/pr70799-5.c: New test.

From-SVN: r247263
2017-04-25 19:45:22 +02:00
Martin Sebor e602bbfc30 PR tree-optimization/80497 - ICE at -O1 and above on valid code on x86_64-linux-gnu in tree_to_uhwi
gcc/ChangeLog:

	PR tree-optimization/80497
	* gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
	constants are representable in HOST_WIDE_INT.
	(parse_directive): Ditto.

gcc/testsuite/ChangeLog:

	PR tree-optimization/80497
	* gcc.dg/tree-ssa/builtin-sprintf-warn-17.c: New test.

From-SVN: r247262
2017-04-25 11:40:58 -06:00
Martin Sebor 8e640712d5 PR bootstrap/80486 - spurious -Walloc-size-larger-than and -Wstringop-overflow in dominance.c during profiledbootstrap
gcc/ChangeLog:

	PR bootstrap/80486
	* dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
	(new_zero_array): Adjust signature.
	(dom_info::dom_init): Used unsigned rather that size_t.
	(dom_info::dom_info): Same.

From-SVN: r247261
2017-04-25 11:18:39 -06:00
Ramana Radhakrishnan 7629ae90d8 re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/arm/arm.c: Include gimple.h.
	(aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
	returns negative, increment ncrn only if it returned positive.
	(arm_needs_doubleword_align): Return int instead of bool,
	ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
	members, but if there is any such non-FIELD_DECL
	> PARM_BOUNDARY aligned decl, return -1 instead of false.
	(arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
	returns negative, increment nregs only if it returned positive.
	(arm_setup_incoming_varargs): Likewise.
	(arm_function_arg_boundary): Emit -Wpsabi note if
	arm_needs_doubleword_align returns negative, return
	DOUBLEWORD_ALIGNMENT only if it returned positive.
testsuite/
	* g++.dg/abi/pr77728-1.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r247258
2017-04-25 18:46:34 +02:00
Marek Polacek 2ef42cf924 re PR sanitizer/80349 (UBSAN: compile time crash with "type mismatch in binary expression" message)
PR sanitizer/80349
	* fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
	first argument to type.

	* g++.dg/ubsan/pr80349-2.C: New test.

From-SVN: r247257
2017-04-25 16:39:57 +00:00
Volker Reichelt 70caf430fe parser.c (cp_parser_elaborated_type_specifier): Add fix-it to diagnostic of invalid class/struct keyword after enum.
* parser.c (cp_parser_elaborated_type_specifier): Add fix-it to
        diagnostic of invalid class/struct keyword after enum.

        * g++.dg/cpp0x/enum34.C: New test.

From-SVN: r247254
2017-04-25 16:12:58 +00:00
Arnaud Charlet 9c533e7dfb gnat_rm.texi, [...]: Update documentation.
* gnat_rm.texi, gnat_ugn.texi,
	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
	doc/gnat_ugn/platform_specific_information.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/the_gnat_library.rst,
	doc/gnat_rm/implementation_defined_pragmas.rst,
	doc/gnat_rm/representation_clauses_and_pragmas.rst,
	doc/gnat_rm/implementation_of_specific_ada_features.rst,
	doc/gnat_rm/implementation_defined_aspects.rst,
	doc/gnat_rm/implementation_defined_characteristics.rst: Update
	documentation.

From-SVN: r247253
2017-04-25 17:59:28 +02:00
Arnaud Charlet 211e7410b3 [multiple changes]
2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Emit error message when
	generating C code on complex case expressions.

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Generate a warning instead
	of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode.
	* directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use
	Ada_2012 instead of Ada_2005 to be compatible with the above
	change.
	* bindgen.adb: Silence new warning on pragma Ada_95.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb (Generate_Range_Check): Revert part of previous change.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch4.adb (Try_Container_Indexing): Handle properly a
	container indexing operation that appears as a an actual in a
	parameter association in a procedure call.

2017-04-25  Olivier Ramonat  <ramonat@adacore.com>

	* prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads:
	Fix spelling mistakes.

2017-04-25  Bob Duff  <duff@adacore.com>

	* types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb,
	* sinput-p.adb: Use regular fat pointers, with bounds checking,
	for source buffers.  Fix misc obscure bugs.
	* sinput.ads, sinput.adb: Use regular fat pointers, with bounds
	checking, for source buffers.  Modify representation clause for
	Source_File_Record as appropriate.  Move Source_File_Index_Table
	from spec to body, because it is not used outside the body.
	Move Set_Source_File_Index_Table into the private part, because
	it is used only in the body and in children.  Use trickery to
	modify the dope in the generic instantiation case.  It's ugly,
	but not as ugly as the previous method.  Fix documentation.
	Remove obsolete code.
	* fname-sf.adb, targparm.adb: Fix misc out-of-bounds
	indexing in source buffers.
	* fmap.adb: Avoid conversions from one string type to another.
	Remove a use of global name buffer.
	* osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment
	fixes.

From-SVN: r247252
2017-04-25 17:54:39 +02:00
Tom de Vries f66c70dc03 Add dg-line
Context: there are currently two types of line number supported in
dg-{error,warning,message,bogus} directives: absolute and relative.  With an
absolute line number, it's immediately clear what line number is meant, but
when a line is added at the start of the file, the line number needs to be
updated.  With a relative line number, that problem is solved, but when relative
line numbers become large, it becomes less clear what line it refers to, and
when adding a line inbetween the directive using the relative line number and
the line it refers to, the relative line number still needs to be updated.

Add a directive dg-line with argument varname, that saves the line number
of the directive in a variable varname, which can be used as line number in dg
directives.

2017-04-25  Tom de Vries  <tom@codesourcery.com>

	* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Cleanup line number
	variables.
	(dg-line): New proc.
	(process-message): Handle line number variables.
	* objc.dg/try-catch-12.m: Use dg-line.

From-SVN: r247251
2017-04-25 15:42:35 +00:00
Bill Seurer 77071af63c [PATCH, rs6000] pr80482 Relax vector builtin parameter checks
PR target/80482

This patch changes the parameter testing for powerpc vector builtins to relax
the existing requirement that the parameters be identical to instead that they
be compatible.  This allows for mixing parameters with differing qualified
(const, volatile, etc.) types.

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80482 for more information.

Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64be-unknown-linux-gnu with no regressions.  Is this ok for trunk?

[gcc]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	PR target/80482
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
	type checks to test for compatibility instead of equality.

[gcc/testsuite]

2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>

	PR target/80482
	* gcc.target/powerpc/vec-constvolatile.c: New test.

From-SVN: r247250
2017-04-25 15:22:40 +00:00
David Malcolm fbe9180458 C++: fix-it hint for removing stray semicolons
gcc/cp/ChangeLog:
	* parser.c (cp_parser_member_declaration): Add fix-it hint
	for removing stray semicolons.

gcc/testsuite/ChangeLog:
	* g++.dg/semicolon-fixits.C: New test case.

From-SVN: r247244
2017-04-25 14:10:52 +00:00
David Malcolm 1c4ea66f24 C: fix-it hint for removing stray semicolons
gcc/c/ChangeLog:
	* c-parser.c (c_parser_struct_or_union_specifier): Add fix-it
	hint for removing extra semicolon.

gcc/testsuite/ChangeLog:
	* gcc.dg/semicolon-fixits.c: New test case.

From-SVN: r247243
2017-04-25 14:03:55 +00:00
Arnaud Charlet e0666fc62f [multiple changes]
2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb, exp_ch4.adb: Minor reformatting.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb: Code clean up in various routines.
	(Generate_Range_Check): Do not generate a range check when the
	expander is not active or when index/range checks are suppressed
	on the target type.
	(Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze):
	Remove variants that include a Supress parameter. These routines
	are never used, and were introduced before the current scope-based
	check suppression method.

2017-04-25  Vasiliy Fofanov  <fofanov@adacore.com>

	* prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific
	code and some subprogram calls that are now noop.

From-SVN: r247242
2017-04-25 15:58:36 +02:00
David Malcolm 5ca28c1d5f C++: hints for missing std:: headers
gcc/cp/ChangeLog:
	* name-lookup.c (get_std_name_hint): New function.
	(maybe_suggest_missing_header): New function.
	(suggest_alternative_in_explicit_scope): Call
	maybe_suggest_missing_header.

gcc/testsuite/ChangeLog:
	* g++.dg/lookup/missing-std-include.C: New test file.

From-SVN: r247240
2017-04-25 13:54:35 +00:00
Ramana Radhakrishnan 2ec07fa616 re PR target/77728 (Miscompilation multiple vector iteration on ARM)
PR target/77728
	* config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
	type.
	(aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
	struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
	the alignment computation, but return their maximum in warn_alignment.
	(aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
	Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
	is smaller.
	(aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
	(aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
	caller.
testsuite/
	* g++.dg/abi/pr77728-2.C: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r247239
2017-04-25 15:52:33 +02:00
Arnaud Charlet eb2d5ccc33 Minor reformatting.
From-SVN: r247238
2017-04-25 15:42:56 +02:00
Arnaud Charlet e44e8a5eba exp_ch4.adb (Expand_N_Case_Expression): Take Minimize_Expression_With_Actions into account when possible.
2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Take
	Minimize_Expression_With_Actions into account when possible.

From-SVN: r247237
2017-04-25 15:42:35 +02:00
Arnaud Charlet bf604a5eeb [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_util.adb (Known_Non_Null): Moved to Sem_Util.
	(Known_Null): Moved to Sem_Util.
	* exp_util.ads (Known_Non_Null): Moved to Sem_Util.
	(Known_Null): Moved to Sem_Util.
	* sem_util.adb Add new enumeration type Null_Status_Kind.
	(Known_Non_Null): Moved from Exp_Util. Most of the logic in
	this routine is now carried out by Null_Status.
	(Known_Null): Moved from Exp_Util. Most of the logic in this routine
	is now carried out by Null_Status.
	(Null_Status): New routine.
	* sem_util.ads (Known_Non_Null): Moved from Exp_Util.
	(Known_Null): Moved from Exp_Util.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch6.adb (Analyze_Expression_Function): Do not report an
	error on the return type of an expression function that is a
	completion, if the type is derived from a generic formal type.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type
	conversion are those of the target type.

2017-04-25  Bob Duff  <duff@adacore.com>

	* a-clrefi.adb: Minor cleanup.

From-SVN: r247236
2017-04-25 15:41:04 +02:00
Gary Dismukes 178c3cba2d exp_util.adb, [...]: Minor reformatting.
2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb, exp_util.ads, types.ads: Minor reformatting.

From-SVN: r247235
2017-04-25 15:39:30 +02:00
Bob Duff 0f96fd143c err_vars.ads, [...]: Eliminate the vestigial Internal_Source_File and the Internal_Source buffer.
2017-04-25  Bob Duff  <duff@adacore.com>

	* err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb,
	types.adb, types.ads, types.h, sinput-l.adb, targparm.adb,
	errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb,
	scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and
	the Internal_Source buffer. This removes the incorrect call to "="
	the customer noticed.
	Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We
	eventually need to eliminate them altogether. Or else get rid
	of zero-origin addressing.

From-SVN: r247234
2017-04-25 15:37:18 +02:00
David Malcolm 7d5dbb22ec Fix spelling suggestions for reserved words (PR c++/80177)
gcc/cp/ChangeLog:
	PR c++/80177
	* name-lookup.c (suggest_alternative_in_explicit_scope): Convert
	candidate type of bm from tree to const char *.
	(consider_binding_level): Likewise.
	(lookup_name_fuzzy): Likewise, using this to merge the best
	result from the preprocessor into bm, rather than immediately
	returning, so that better matches from reserved words can "win".
	Guard the rejection of keywords that don't start decl-specifiers
	so it only happens for FUZZY_LOOKUP_TYPENAME.

gcc/testsuite/ChangeLog:
	PR c++/80177
	* g++.dg/spellcheck-pr80177.C: New test case.

From-SVN: r247233
2017-04-25 13:34:50 +00:00
Arnaud Charlet 0f168ccca1 Minor reformatting.
From-SVN: r247232
2017-04-25 15:33:32 +02:00
Arnaud Charlet 28ccbd3ff8 [multiple changes]
2017-04-25  Claire Dross  <dross@adacore.com>

	* exp_util.ads (Expression_Contains_Primitives_Calls_Of): New
	function used in GNATprove to know if an expression contains
	non-dispatching calls on primitives of a tagged type.

2017-04-25  Bob Duff  <duff@adacore.com>

	* rtsfind.adb (Initialize): Initialize
	First_Implicit_With. Building the compiler with Normalize_Scalars
	and validity checking finds this being used as an uninitialized
	variable.

From-SVN: r247231
2017-04-25 15:33:16 +02:00
Hristian Kirtchev f9a8f91057 contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): Add a warning about SPARK mode management.
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract):
	Add a warning about SPARK mode management. The routine now
	saves and restores both the mode and associated pragma.
	(Analyze_Entry_Or_Subprogram_Contract): Add a warning about
	SPARK mode management. The routine now saves and restores both
	the mode and associated pragma.
	(Analyze_Object_Contract):
	Add a warning about SPARK mode management. The routine
	now saves and restores both the mode and associated pragma.
	(Analyze_Package_Body_Contract): Add a warning about SPARK mode
	management.  The routine now saves and restores both the mode
	and associated pragma.	(Analyze_Package_Contract): Add a warning
	about SPARK mode management. The routine now saves and restores
	both the mode and associated pragma.
	(Analyze_Task_Contract):
	Add a warning about SPARK mode management. The routine now saves
	and restores both the mode and associated pragma.
	* expander.adb (Expand): Change the way the Ghost mode is saved
	and restored.
	* exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is
	saved and restored.
	* exp_disp.adb (Make_DT): Change the way the Ghost mode is saved
	and restored.
	* exp_util.adb (Build_DIC_Procedure_Body):
	Change the way the Ghost mode is saved and restored.
	(Build_DIC_Procedure_Declaration): Change the way the Ghost
	mode is saved and restored.
	(Build_Invariant_Procedure_Body):
	Change the way the Ghost mode is saved and restored.
	(Build_Invariant_Procedure_Declaration): Change the way the Ghost
	mode is saved and restored.
	(Make_Predicate_Call): Change the
	way the Ghost mode is saved and restored.
	* freeze.adb (Freeze_Entity): Change the way the Ghost mode is
	saved and restored.
	* ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
	and its assignment.
	(Mark_And_Set_Ghost_Body): Remove parameter
	Mode and its assignment.
	(Mark_And_Set_Ghost_Completion):
	Remove parameter Mode and its assignment.
	(Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its
	assignment.
	(Mark_And_Set_Ghost_Instantiation): Remove parameter
	Mode and its assignment.
	(Mark_And_Set_Ghost_Procedure_Call):
	Remove parameter Mode and its assignment.
	(Set_Ghost_Mode):
	Remove parameter Mode and its assignment.
	* ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode
	and update the comment on usage.
	(Mark_And_Set_Ghost_Body):
	Remove parameter Mode and update the comment on usage.
	(Mark_And_Set_Ghost_Completion): Remove parameter Mode and
	update the comment on usage.
	(Mark_And_Set_Ghost_Declaration):
	Remove parameter Mode and update the comment on usage.
	(Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and
	update the comment on usage.
	(Mark_And_Set_Ghost_Procedure_Call):
	Remove parameter Mode and update the comment on usage.
	(Set_Ghost_Mode): Remove parameter Mode and update the comment
	on usage.
	* lib.ads Remove obsolete fields SPARK_Mode_Pragma from various
	types.
	* lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment
	of obsolete field SPARK_Mode_Pragma.
	(Load_Main_Source): Remove
	the assignment of obsolete field SPARK_Mode_Pragma.
	(Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma.
	* lib-writ.adb (Add_Preprocessing_Dependency): Remove
	the assignment of obsolete field SPARK_Mode_Pragma.
	(Ensure_System_Dependency): Remove the assignment of obsolete
	field SPARK_Mode_Pragma.
	* rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK
	mode management. Change the way Ghost and SPARK modes are saved
	and restored.
	* sem.adb (Analyze): Change the way the Ghost mode is saved
	and restored.
	* sem_ch3.adb (Analyze_Object_Declaration): Change the way the
	Ghost mode is saved and restored.
	(Process_Full_View): Change
	the way the Ghost mode is saved and restored.
	* sem_ch5.adb (Analyze_Assignment): Change the way the Ghost
	mode is saved and restored.
	* sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost
	mode is saved and restored.
	(Analyze_Subprogram_Body_Helper):
	Change the way the Ghost mode is saved and restored.
	* sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the
	Ghost mode is saved and restored.
	* sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode
	management. Save the SPARK mode-related data prior to any changes
	to the scope stack and contexts. The mode is then reinstalled
	before the subunit is analyzed in order to restore the original
	view of the subunit.
	* sem_ch12.adb (Analyze_Package_Instantiation): Update the
	warning on region management.  Change the way the Ghost and
	SPARK modes are saved and restored.
	(Inline_Instance_Body):
	Add a warning about SPARK mode management. Code clean up.
	(Analyze_Subprogram_Instantiation): Update the warning on region
	management.  Change the way the Ghost and SPARK modes are saved
	and restored.
	(Instantiate_Package_Body): Update the warning
	on region management. Change the way the Ghost and SPARK modes
	are saved and restored.
	(Instantiate_Subprogram_Body): Update
	the warning on region management. Change the way the Ghost and
	SPARK modes are saved and restored.
	(Set_Instance_Env): Add a
	warning about SPARK mode management. Change the way SPARK mode
	is saved and restored.
	* sem_ch13.adb (Build_Predicate_Functions):
	Change the way the Ghost mode is saved and restored.
	(Build_Predicate_Function_Declaration): Change the way the Ghost
	mode is saved and restored.
	* sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK
	mode management. Change the way SPARK mode is saved and restored.
	* sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part):
	Change the way the Ghost mode is saved and restored.
	(Analyze_Initial_Condition_In_Decl_Part): Change the way
	the Ghost mode is saved and restored.
	(Analyze_Pragma):
	Change the way the Ghost mode is saved and restored.
	(Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the
	Ghost mode is saved and restored.
	* sem_util.adb (Install_SPARK_Mode): New routine.
	(Restore_SPARK_Mode): New routine.
	(Save_SPARK_Mode_And_Set): Removed.
	(Set_SPARK_Mode): New routine.
	* sem_util.ads (Install_SPARK_Mode): New routine.
	(Restore_SPARK_Mode): New routine.
	(Save_SPARK_Mode_And_Set): Removed.
	(Set_SPARK_Mode): New routine.

From-SVN: r247230
2017-04-25 15:30:56 +02:00
Ed Schonberg e1691d7e60 sem_util.adb, [...] (From_Nested_Package): New predicate to determine whether a type is declared in a local package that...
2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb, sem_util.ads (From_Nested_Package): New predicate
	to determine whether a type is declared in a local package that
	has not yet been frozen.
	* freeze.adb (Freeze_Before): Use new predicate to determine
	whether a local package must be installed on the scope stack
	in order to evaluate in the proper scope actions generated by
	aspect specifications, such as Predicate
	* sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point
	using new predicate.

From-SVN: r247229
2017-04-25 15:28:14 +02:00
Arnaud Charlet 57f6e00c46 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider
	comparisons between non- scalar expressions expressions because
	their values cannot be invalidated.
	* sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the
	comment on usage.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* par_sco.adb: Minor reformatting.

2017-04-25  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity
	is a type from an unfrozen local package, install package to
	complete the analysis of delayed aspects of the type.

2017-04-25  Tristan Gingold  <gingold@adacore.com>

	* bingen.adb (System_Version_Control_Used): New variable.
	(Resolve_Binder_Options): Set the above variable.
	(Gen_Output_File_Ada): Conditionally call Gen_Versions.
	(Gen_Elab_Order): Emit blank line before.

2017-04-25  Justin Squirek  <squirek@adacore.com>

	* sem_cat.adb (Validate_RT_RAT_Component): Added
	an extra check to ignore incomplete types.

From-SVN: r247228
2017-04-25 15:27:07 +02:00
Arnaud Charlet 628078425b [multiple changes]
2017-04-25  Thomas Quinot  <quinot@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove
	bogus circuitry for the case where Name is Predicate.

2017-04-25  Thomas Quinot  <quinot@adacore.com>

	* par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects):
	Create SCOs for Predicate aspects in disabled
	state initially, to be enabled later on by...
	* sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark
	SCO for predicate as enabled.

2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* comperr.adb (Compiler_Abort): Remove now obsolete pair of
	pragmas Warnings Off / On.
	* namet.adb (Finalize): Remove now obsolete pair of pragmas
	Warnings Off / On.
	* output.adb: Remove now obsolete pair of pragmas Warnings Off / On.
	* sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not
	consider comparisons between static expressions because their
	values cannot be invalidated.
	* urealp.adb (Tree_Read): Remove now obsolete pair of pragmas
	Warnings Off / On.
	(Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On.
	* usage.adb Remove now obsolete pair of pragmas Warnings Off / On.

2017-04-25  Bob Duff  <duff@adacore.com>

	* sem_elab.adb (In_Task_Activation): Trace internal calls in
	task bodies.

From-SVN: r247227
2017-04-25 15:25:06 +02:00
Claudiu Zissulescu c66cda60fe [ARC][COMMITTED] Fix typo dmpyh pattern
gcc/
2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/simdext.md (dmpyh): Fix typo.

From-SVN: r247226
2017-04-25 15:22:00 +02:00
Gary Dismukes 2da8c8e2e3 sem_prag.adb, [...]: Minor reformatting and typo fixes.
2017-04-25  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and
	typo fixes.

From-SVN: r247225
2017-04-25 15:21:15 +02:00
Arnaud Charlet 634a926b69 [multiple changes]
2017-04-25  Hristian Kirtchev  <kirtchev@adacore.com>

	* comperr.adb (Compiler_Abort): Add a pair of pragma Warnings
	On/Off to defend against a spurious warning in conditional
	compilation.
	* exp_ch4.adb (Rewrite_Comparison): Reimplemented.
	* namet.adb (Finalize): Add a pair of pragma Warnings On/Off to
	defend against a spurious warning in conditional compilation.
	* output.adb Add a pair of pragma Warnings On/Off to defend
	against a spurious warning in conditional compilation.
	* sem_eval.adb (Eval_Relational_Op): Major code clean up.
	(Fold_General_Op): New routine.
	(Fold_Static_Real_Op): New routine.
	(Test_Comparison): New routine.
	* sem_eval.ads (Test_Comparison): New routine.
	* sem_warn.adb (Is_Attribute_Constant_Comparison): New routine.
	(Warn_On_Constant_Valid_Condition): New routine.
	(Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison
	to detect a specific case.
	* sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine.
	* urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off
	to defend against a spurious warning in conditional compilation.
	(Tree_Write): Add a pair of pragma Warnings On/Off to defend
	against a spurious warning in conditional compilation.
	* usage.adb Add a pair of pragma Warnings On/Off to defend
	against a spurious warning in conditional compilation.

2017-04-25  Arnaud Charlet  <charlet@adacore.com>

	* sinfo.ads, sem_ch13.adb: Update comment.

From-SVN: r247224
2017-04-25 15:19:23 +02:00