1. 02 May, 2016 40 commits
    • re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc') · fd39794a
      	PR target/49244
      	* gimple.c (gimple_builtin_call_types_compatible_p): Allow
      	char/short arguments promoted to int because of promote_prototypes.
      
      From-SVN: r235792
      Jakub Jelinek committed
    • backport: Since x86 psABIs require the function incoming stack must align at 16 bytes... · 50d94c29
      Backport r265322 from llvm upstream
      
      Since x86 psABIs require the function incoming stack must align at 16
      bytes, child process stack passed to clone should be aligned at 16
      bytes.
      
      	PR testsuite/70520
      	* c-c++-common/asan/clone-test-1.c (main): Align child process
      	stack to 16 bytes.
      
      From-SVN: r235790
      H.J. Lu committed
    • PR c++/62314: C++: add fixit hint to misspelled member names · bc1aee87
      When we emit a hint about a misspelled member name, it will slightly
      aid readability if we use a fixit-hint to show the proposed
      name in context within the source code (and in the future this
      might support some kind of auto-apply in an IDE).
      
      This patch adds such a hint to the C++ frontend, taking us from:
      
      test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
         return ptr->colour;
                     ^~~~~~
      
      to:
      
      test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
         return ptr->colour;
                     ^~~~~~
                     color
      
      gcc/cp/ChangeLog:
      	PR c++/62314
      	* typeck.c (finish_class_member_access_expr): When
      	giving a hint about a possibly-misspelled member name,
      	add a fix-it replacement hint.
      
      gcc/testsuite/ChangeLog:
      	PR c++/62314
      	* g++.dg/spellcheck-fields-2.C: New test case.
      
      From-SVN: r235785
      David Malcolm committed
    • * ChangeLog: Add missing entry. · 7caed520
      From-SVN: r235783
      Uros Bizjak committed
    • predicates.md (register_ssemem_operand): New predicate. · c8802daf
      	* config/i386/predicates.md (register_ssemem_operand): New predicate.
      	* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
      	*cmpi<FPCMP:unord><MODEF:mode>_mixed and
      	*cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
      	alternatives using "enabled" attribute.  Use register_ssemem_operand
      	as operand 1 predicate.
      	(*cmpi<unord>xf_i387): Split XFmode pattern from
      	*cmpi<FPCMP:unord><X87MODEF:mode>_i387.
      	(*absneg<mode>2): Merge from *absneg<mode>2_mixed and
      	*absneg<mode>2_i387.  Disable unsupported alternatives using
      	"enabled" attribute.
      
      From-SVN: r235782
      Uros Bizjak committed
    • c-common.h (enum c_omp_region_type): Define. · 77886428
      	gcc/c-family/
      	* c-common.h (enum c_omp_region_type): Define.
      
      	gcc/c/
      	* c-parser.c (c_parser_oacc_all_clauses): Update call to
      	c_finish_omp_clauses.
      	(c_parser_omp_all_clauses): Likewise.
      	(c_parser_oacc_cache): Likewise.
      	(c_parser_oacc_loop): Likewise.
      	(omp_split_clauses): Likewise.
      	(c_parser_omp_declare_target): Likewise.
      	(c_parser_cilk_all_clauses): Likewise.
      	(c_parser_cilk_for): Likewise.
      	* c-typeck.c (c_finish_omp_clauses): Replace bool arguments
      	is_omp, declare_simd, and is_cilk with enum c_omp_region_type ort.
      
      	gcc/cp/
      	* cp-tree.h (finish_omp_clauses): Update prototype.
      	* parser.c (cp_parser_oacc_all_clauses): Update call to
      	finish_omp_clauses.
      	(cp_parser_omp_all_clauses): Likewise.
      	(cp_parser_omp_for_loop): Likewise.
      	(cp_omp_split_clauses): Likewise.
      	(cp_parser_oacc_cache): Likewise.
      	(cp_parser_oacc_loop): Likewise.
      	(cp_parser_omp_declare_target):
      	(cp_parser_cilk_simd_all_clauses): Likewise.
      	(cp_parser_cilk_for): Likewise.
      	* pt.c (tsubst_omp_clauses): Replace allow_fields and declare_simd
      	arguments with enum c_omp_region_type ort.
      	(tsubst_omp_clauses): Update calls to finish_omp_clauses.
      	(tsubst_omp_attribute): Update calls to tsubst_omp_clauses.
      	(tsubst_omp_for_iterator): Update calls to finish_omp_clauses.
      	(tsubst_expr): Update calls to tsubst_omp_clauses.
      	* semantics.c (finish_omp_clauses): Replace bool arguments
      	allow_fields, declare_simd, and is_cilk with bitmask ort.
      	(finish_omp_for): Update call to finish_omp_clauses.
      
      From-SVN: r235780
      Cesar Philippidis committed
    • PR c++/62314: add fixit hint for missing "template <> " in explicit specialization · 474e0129
      gcc/cp/ChangeLog:
      	PR c++/62314
      	* parser.c (cp_parser_class_head): Capture the start location;
      	use it to emit a fix-it insertion hint when complaining
      	about missing "template <> " in explicit specializations.
      
      gcc/testsuite/ChangeLog:
      	PR c++/62314
      	* g++.dg/pr62314.C: New test case.
      
      From-SVN: r235777
      David Malcolm committed
    • omp-low.c (lower_oacc_head_tail): Assert there is at least one marker. · 4877b5a4
      	* omp-low.c (lower_oacc_head_tail): Assert there is at least one
      	marker.
      	(oacc_loop_process): Check mask for loop termination.
      
      From-SVN: r235775
      Nathan Sidwell committed
    • Don't install libvtv without --enable-vtable-verify · 4344d7fa
      	* Makefile.am (toolexeclib_LTLIBRARIES): Only set if
      	ENABLE_VTABLE_VERIFY.
      	Simplify.
      	* Makefile.in: Regenerate.
      
      From-SVN: r235772
      Rainer Orth committed
    • ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert accidental change. · 201da53f
      
      	* ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
      	accidental change.
      
      From-SVN: r235771
      Jan Hubicka committed
    • * cif-code.def (CIF_THUNK): Add. · fd5fac4c
      From-SVN: r235770
      Jan Hubicka committed
    • * sv.po, zh_CN.po: Update. · ed3c0c8e
      From-SVN: r235768
      Joseph Myers committed
    • Demangler integer overflow fixes from Marcel Böhme. · bfbc839a
      	PR c++/70498
      	* cp-demangle.c: Parse numbers as integer instead of long to avoid
      	overflow after sanity checks. Include <limits.h> if available.
      	(INT_MAX): Define if necessary.
      	(d_make_template_param): Takes integer argument instead of long.
      	(d_make_function_param): Likewise.
      	(d_append_num): Likewise.
      	(d_identifier): Likewise.
      	(d_number): Parse as and return integer.
      	(d_compact_number): Handle overflow.
      	(d_source_name): Change variable type to integer for parsed number.
      	(d_java_resource): Likewise.
      	(d_special_name): Likewise.
      	(d_discriminator): Likewise.
      	(d_unnamed_type): Likewise.
      	* testsuite/demangle-expected: Add regression test cases.
      
      From-SVN: r235767
      Marcel Böhme committed
    • ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions · 818b88a7
      
      	* ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
      	(dump_inline_summary): Dump it.
      	(fp_expression_p): New predicate.
      	(estimate_function_body_sizes): Use it.
      	(inline_merge_summary): Merge fp_expressions.
      	(inline_read_section): Read fp_expressions.
      	(inline_write_summary): Write fp_expressions.
      	* ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
      	codegen boundary if either caller or callee is !fp_expressions.
      	* ipa-inline.h (inline_summary): Add fp_expressions.
      	* ipa-inline-transform.c (inline_call): When inlining !fp_expressions
      	to fp_expressions be sure the fp generation flags are updated.
      
      	* gcc.dg/ipa/inline-8.c: New testcase.
      
      From-SVN: r235766
      Jan Hubicka committed
    • re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable) · dd77684f
      	PR rtl-optimization/70467
      	* cse.c (cse_insn): Handle no-op MEM moves after folding.
      
      	* gcc.target/i386/pr70467-1.c: New test.
      
      From-SVN: r235765
      Jakub Jelinek committed
    • re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable) · d40790c8
      	PR rtl-optimization/70467
      	* ipa-pure-const.c (check_call): Handle internal calls even in
      	ipa mode like in local mode.
      
      From-SVN: r235764
      Jakub Jelinek committed
    • configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code. · 00f35794
      2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * configure.ac (mpfr): Remove pre-3.1.0 mpfr compatibility code.
              * configure: Regenerated.
              * Makefile.def (gmp): Explicitly disable assembler.
              (mpfr): Adjust lib_path.
              (mpc): Likewise.
              * Makefile.in: Regenerated.
      
      gcc/
      2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
      
      contrib/
      2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * download_prerequisites: Adjust gmp/mpfr/mpc versions.
      
      From-SVN: r235763
      Bernd Edlinger committed
    • spec-options.c: Run the test on all targets. · 72407e00
      2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
      
              * gcc.dg/spec-options.c: Run the test on all targets.
              * gcc.dg/foo.specs: Use cpp_unique_options.
      
      From-SVN: r235762
      Bernd Edlinger committed
    • Canonicalize X u< X to UNORDERED_EXPR · dd53d197
      2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd (X u< X, X u> X): New transformations.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/unord.c: New testcase.
      
      From-SVN: r235761
      Marc Glisse committed
    • Move "X +- C1 CMP C2 to X CMP C2 -+ C1" to match.pd · a8b85ce9
      2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* flag-types.h (enum warn_strict_overflow_code): Move ...
      	* coretypes.h: ... here.
      	* fold-const.h (fold_overflow_warning): Declare.
      	* fold-const.c (fold_overflow_warning): Make non-static.
      	(fold_comparison): Move the transformation of X +- C1 CMP C2
      	into X CMP C2 -+ C1 ...
      	* match.pd: ... here.
      	* gimple-fold.c (fold_stmt_1): Protect with
      	fold_defer_overflow_warnings.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/20040305-1.c: Adjust.
      
      From-SVN: r235760
      Marc Glisse committed
    • omp-low.c (struct oacc_loop): Add 'inner' field. · 5b37e866
      	gcc/
      	* omp-low.c (struct oacc_loop): Add 'inner' field.
      	(new_oacc_loop_raw): Initialize it to zero.
      	(oacc_loop_fixed_partitions): Initialize it.
      	(oacc_loop_auto_partitions): Partition outermost loop to outermost
      	available partitioning.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/loop-auto-1.c: Adjust expected warnings.
      
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/loop-auto-1.c: Adjust
      	expected partitioning.
      
      From-SVN: r235756
      Nathan Sidwell committed
    • Fix make install-gcc-specs with empty GCC_SPEC_FILES · 87cdf04b
      	* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
      	Honor DESTDIR.
      
      From-SVN: r235754
      Rainer Orth committed
    • re PR c/70851 (internal compiler error: in create_tmp_var, at gimple-expr.c:473) · 7176a4a0
      	PR c/70851
      	* c-decl.c (grokdeclarator): Diagnose when array's size has an
      	incomplete type.
      
      	* gcc.dg/enum-incomplete-3.c: New test.
      
      From-SVN: r235750
      Marek Polacek committed
    • [ARC] Various instruction pattern fixes · b5a5ade8
      gcc/
      2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (mulsidi3): Change operand 0 predicate to
      	register_operand.
      	(umulsidi3): Likewise.
      	(indirect_jump): Fix jump instruction assembly patterns.
      
      From-SVN: r235749
      Claudiu Zissulescu committed
    • [PR target/70860] [nvptx] Handle NULL cfun in nvptx_libcall_value · e91cacae
      	gcc/
      	PR target/70860
      	* config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
      	(nvptx_function_value): Assert non-NULL cfun.
      
      From-SVN: r235748
      Thomas Schwinge committed
    • Minor reformatting. · c408fb34
      From-SVN: r235747
      Arnaud Charlet committed
    • [multiple changes] · a56886e9
      2016-05-02  Tristan Gingold  <gingold@adacore.com>
      
      	* fname.adb (Is_Predefined_File_Name): Also consider non-krunched
      	i-* names.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_util.adb (Aggregate_Constraint_Checks): Separate
      	accessibility checks and non-null checks for aggregate components,
      	to prevent spurious accessibility errors.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch3.adb (OK_For_Limited_Init): A type conversion is not
      	always legal in the in-place initialization of a limited entity
      	(e.g. an allocator).
      	* sem_res.adb (Resolve_Allocator): Improve error message with RM
      	reference  when allocator expression is illegal.
      
      From-SVN: r235746
      Arnaud Charlet committed
    • [multiple changes] · fc3819c9
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Expand_Call): When inlining a call to a function
      	declared in a package instance, locate the instance node of the
      	package after the actual package declaration. skipping over
      	pragmas that may have been introduced when the generic unit
      	carries aspects that are transformed into pragmas.
      
      2016-05-02  Bob Duff  <duff@adacore.com>
      
      	* s-memory.adb (Alloc, Realloc): Move checks
      	for Size = 0 or size_t'Last into the Result = System.Null_Address
      	path for efficiency. Improve comments (based on actual C language
      	requirements for malloc).
      	* exp_util.adb (Build_Allocate_Deallocate_Proc): Optimize the
      	case where we are using the default Global_Pool_Object, and we
      	don't need the heavy finalization machinery.
      
      From-SVN: r235745
      Arnaud Charlet committed
    • Minor reformatting. · 494a7e45
      From-SVN: r235744
      Arnaud Charlet committed
    • exp_util.ads, [...]: Minor reformatting. · 14c3ae9a
      2016-05-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_util.ads, sem_ch12.adb: Minor reformatting.
      
      From-SVN: r235743
      Gary Dismukes committed
    • [multiple changes] · 89d3b1a1
      2016-05-02  Javier Miranda  <miranda@adacore.com>
      
      	* exp_util.ads, exp_util.adb (Force_Evaluation): Adding new formal.
      	(Remove_Side_Effects): Adding a new formal.
      	* exp_ch6.adb (Expand_Simple_Function_Return): Generating the
      	call to the _Postconditions procedure ensure that side-effects
      	are unconditionally removed.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch12.adb (Check_Formal_Package_Instance, Check_Mismatch):
      	Use original node to determine whether the declaration is for
      	a formal type declaration, to take into account that formwl
      	private types are rewritten as private extension declarations
      	to simplify semantic analysis.
      
      From-SVN: r235742
      Arnaud Charlet committed
    • exp_ch9.adb, [...]: Minor reformatting and typo fixes. · ca90b962
      2016-05-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch9.adb, sem_ch6.adb, sem_ch6.ads: Minor reformatting and typo
      	fixes.
      
      From-SVN: r235741
      Gary Dismukes committed
    • [multiple changes] · bac5ba15
      2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch3.adb, exp_ch9.adb, einfo.adb, sem_ch4.adb, sem_ch6.adb: Minor
      	reformatting.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch4.adb (Expand_N_Allocator): If the designated type
      	is a private derived type with no discriminants, examine its
      	underlying_full_view to determine whether the full view has
      	defaulted discriminants, so their defaults can be used in the
      	call to the initialization procedure for the designated object.
      
      From-SVN: r235740
      Arnaud Charlet committed
    • [multiple changes] · 42f11e4c
      2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* exp_prag.adb, comperr.adb: Minor reformatting.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_pakd.adb (Rj_Unchecked_Convert_To): Do not perform an
      	unchecked conversion if the source size is 0 (indicating that
      	its RM size is unknown). This will happen with packed arrays of
      	non-discrete types, in which case the component type is known
      	to match.
      
      2016-05-02  Arnaud Charlet  <charlet@adacore.com>
      
      	* debug.adb: Reserve -gnatd.V.
      
      2016-05-02  Javier Miranda  <miranda@adacore.com>
      
      	* sem_ch3.adb (Process_Full_View): Remove from visibility
      	wrappers of synchronized types to avoid spurious errors with
      	their wrapped entity.
      	* exp_ch9.adb (Build_Wrapper_Spec): Do not generate the wrapper
      	if no interface primitive is covered by the subprogram and this is
      	not a primitive declared between two views; see Process_Full_View.
      	(Build_Protected_Sub_Specification): Link the dispatching
      	subprogram with its original non-dispatching protected subprogram
      	since their names differ.
      	(Expand_N_Protected_Type_Declaration):
      	If a protected subprogram overrides an interface primitive then
      	do not build a wrapper if it was already built.
      	* einfo.ads, einfo.adb (Original_Protected_Subprogram): New attribute.
      	* sem_ch4.adb (Names_Match): New subprogram.
      	* sem_ch6.adb (Check_Synchronized_Overriding): Moved
      	to library level and defined in the public part of the
      	package to invoke it from Exp_Ch9.Build_Wrapper_Spec
      	(Has_Matching_Entry_Or_Subprogram): New subprogram.
      	(Report_Conflict): New subprogram.
      
      From-SVN: r235739
      Arnaud Charlet committed
    • [multiple changes] · 331e5015
      2016-05-02  Jerome Lambourg  <lambourg@adacore.com>
      
      	* s-unstyp.ads: Code cleanups.
      
      2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch13.adb (Size_Too_Small_Error): Fix the error message format.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_prag.adb (Expand_attributes_In_Consequence,
      	Expand_Attributes): If the prefix of'Old is an unconstrained type,
      	for example an unconstrained formal of the enclosing subprogram,
      	create an object declaration with an expression to obtain the
      	actual subtype of the temporary.
      
      2016-05-02  Arnaud Charlet  <charlet@adacore.com>
      
      	* comperr.adb (Delete_SCIL_Files): Add missing handling of
      	N_Subprogram_Declaration.
      
      From-SVN: r235738
      Arnaud Charlet committed
    • Minor reformatting. · 2c94bbe3
      From-SVN: r235737
      Arnaud Charlet committed
    • [multiple changes] · 2cc2e964
      2016-05-02  Gary Dismukes  <dismukes@adacore.com>
      
      	* exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, checks.adb, sem_attr.adb,
      	gnat1drv.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting and typo
      	fixes.
      	* sem_prag.adb, sem_ch12.adb: Minor typo fixes.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): The
      	function call may be wrapped in an explicit type conversion.
      
      2016-05-02  Jerome Lambourg  <lambourg@adacore.com>
      
      	* interfac.ads: use pragma No_Elaboration_Code_All.
      	* s-unstyp.ads: s-unstyp.ads: use pragma No_Elaboration_Code_All.
      
      2016-05-02  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem.adb (Analyze: If node is an error node previously created
      	by the parser, disable expansion to prevent subsequent glitches
      	in error recovery.
      
      From-SVN: r235736
      Arnaud Charlet committed
    • re PR rtl-optimization/70886 (-frename-registers causes boostrap comparison failures on ia64) · 08e5cf22
      	PR rtl-optimization/70886
      	* sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
      
      	* cselib.h (rtx_equal_for_cselib_1): Declare.
      	(rtx_equal_for_cselib_p: New inline function.
      	* cselib.c (rtx_equal_for_cselib_p): Delete.
      	(rtx_equal_for_cselib_1): Make public.
      
      From-SVN: r235735
      Eric Botcazou committed
    • Minor reformatting. · 86d2f056
      From-SVN: r235734
      Arnaud Charlet committed
    • sem_ch13.adb (Alignment_Error): Removed. · 51122913
      2016-05-02  Hristian Kirtchev  <kirtchev@adacore.com>
      
      	* sem_ch13.adb (Alignment_Error): Removed.
      	(Get_Alignment_Value): Code cleanup.
      
      From-SVN: r235733
      Hristian Kirtchev committed