1. 03 May, 2016 9 commits
  2. 02 May, 2016 31 commits
    • machmode.h (mode_complex): Add support to give the complex mode for a given mode. · 4304ccfd
      [gcc]
      2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* machmode.h (mode_complex): Add support to give the complex mode
      	for a given mode.
      	(GET_MODE_COMPLEX_MODE): Likewise.
      	* stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
      	stored by build_complex_type and gfc_build_complex_type instead of
      	trying to figure out the appropriate mode based on the size. Raise
      	an assertion error, if the type was not set.
      	* genmodes.c (struct mode_data): Add field for the complex type of
      	the given type.
      	(blank_mode): Likewise.
      	(make_complex_modes): Remember the complex mode created in the
      	base type.
      	(emit_mode_complex): Write out the mode_complex array to map a
      	type mode to the complex version.
      	(emit_insn_modes_c): Likewise.
      	* tree.c (build_complex_type): Set the complex type to use before
      	calling layout_type.
      	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
      	support for __float128 complex datatypes.
      	(rs6000_hard_regno_mode_ok): Likewise.
      	(rs6000_setup_reg_addr_masks): Likewise.
      	(rs6000_complex_function_value): Likewise.
      	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
      	__float128 and __ibm128 complex.
      	(FLOAT128_IBM_P): Likewise.
      	(ALTIVEC_ARG_MAX_RETURN): Likewise.
      	* doc/extend.texi (Additional Floating Types): Document that
      	-mfloat128 must be used to enable __float128.  Document complex
      	__float128 and __ibm128 support.
      
      [gcc/fortran]
      2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* trans-types.c (gfc_build_complex_type):
      
      [gcc/testsuite]
      2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/float128-complex-1.c: New tests for complex
      	__float128.
      	* gcc.target/powerpc/float128-complex-2.c: Likewise.
      
      From-SVN: r235794
      Michael Meissner committed
    • 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