Commit Graph

151011 Commits

Author SHA1 Message Date
Alexander Ivchenko 8ba4f50639 c.opt (flag_chkp_flexible_struct_trailing_arrays): Add new option.
2016-12-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>

* c-family/c.opt (flag_chkp_flexible_struct_trailing_arrays):
  Add new option.
  (fchkp-narrow-to-innermost-array): Fix typo.
* doc/cpp.texi (flag_chkp_flexible_struct_trailing_arrays): Ditto.
* tree-chkp.c (chkp_may_narrow_to_field ): Forbid
  narrowing when flag_chkp_flexible_struct_trailing_arrays is used
  and the field is the last array field in the structure.


2016-12-27  Alexander Ivchenko  <alexander.ivchenko@intel.com>

* gcc.target/i386/mpx/vla-trailing-1-lbv.c: New test.
* gcc.target/i386/mpx/vla-trailing-1-nov.c: Ditto.
* gcc.target/i386/mpx/vla-trailing-1-ubv.c: Ditto.

From-SVN: r243936
2016-12-27 13:31:43 +00:00
Uros Bizjak 5735741b12 * gcc.target/i386/pr78904-2.c: Fix testcase.
From-SVN: r243935
2016-12-27 12:12:32 +01:00
Uros Bizjak 6a2067fffe i386.md (andqi_ext_1): Use general_operand predicate for operand 2.
* config/i386/i386.md (andqi_ext_1): Use general_operand
	predicate for operand 2.

From-SVN: r243934
2016-12-27 12:00:15 +01:00
Uros Bizjak b1d3a450be re PR target/78904 (zero-extracts are not effective)
PR target/78904
	* config/i386/i386.md (*cmpqi_ext_1, *extvqi, *extzvqi): Use
	nonimmediate_operand instead of nonimmediate_x64nomem_operand.
	(*cmpqi_ext_3, insv<mode>_1, addqi_ext_1, *testqi_ext_1, andqi_ext_1)
	(*<any_or:code>qi_ext_1, *xorqi_ext_1_cc): Use general_operand
	instead of general_x64nomem_operand.
	* config/i386/predicates.md (nonimmediate_x64nomem_operand): Remove.
	(general_x64nomem_operand): Ditto.

testsuite/ChangeLog:

	PR target/78904
	* gcc.target/i386/pr78904-2.c: New test.

From-SVN: r243933
2016-12-27 09:59:04 +01:00
GCC Administrator 2226492f26 Daily bump.
From-SVN: r243932
2016-12-27 00:16:15 +00:00
Uros Bizjak ecb1129654 re PR target/78904 (zero-extracts are not effective)
PR target/78904
	* config/i386/i386.md (addqi_ext_1): Canonicalize insn pattern w.r.t.
	zero_extract RTXes.
	(*addqi_ext_2): Ditto.
	(testqi_ext_ccno_0): Canonicalize expander w.r.t. zero_extract RTXes.
	(testqi_ext_1_ccno): Rename from testqi_ext_ccno_0.
	(*testqi_ext_0): Merge with *testqi_ext_1.
	(*testqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes.
	Update corresponding splitter.
	(*testqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes.
	(*andqi_ext_0): Merge with *andqi_ext_1.
	(andqi_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes.
	Rename from *andqi_ext_1.  Update corresponding splitter and
	peephole2 patterns.
	(*andqi_ext_1_cc): Rename from *andqi_ext_0_cc.
	(*andqi_ext_2): Canonicalize insn pattern w.r.t. zero_extract RTXes.
	(*<any_or:code>qi_ext_0): Merge with *andqi_ext_1.
	(*<any_or:code>qi_ext_1): Canonicalize insn pattern w.r.t.
	zero_extract RTXes.  Update corresponding splitter.
	(*<any_or:code>qi_ext_2): Canonicalize insn pattern w.r.t.
	zero_extract RTXes.
	(xorqi_cc_ext_1): Canonicalize expander w.r.t. zero_extract RTXes.
	(xorqi_ext_1_cc): Rename from xorqi_cc_ext_1.
	(*xorqi_cc_ext_1): Canonicalize insn pattern w.r.t. zero_extract RTXes.
	Update corresponding splitter.
	(*xorqi_ext_1_cc): Rename from *xorqi_cc_ext_1.
	(isinfxf2): Update calls to renamed expanders.
	(isinf<mode>2): Ditto.
	* config/i386/i386.c (ix86_expand_fp_compare): Ditto.
	(ix86_emit_fp_unordered_jump): Ditto.
	(ix86_emit_i387_round): Ditto.

testsuite/ChangeLog:

	PR target/78904
	* gcc.target/i386/pr78904.c: New test.

From-SVN: r243929
2016-12-26 20:00:47 +01:00
Alexander Ivchenko dfcbd6b3da libtool-version: New version.
2016-12-26  Alexander Ivchenko  <alexander.ivchenko@intel.com>

    * mpxrt/libtool-version: New version.
    * mpxrt/mpxrt-utils.c (set_mpx_rt_stop_handler): New function.
    (print_help): Add help for CHKP_RT_STOP_HANDLER environment
    variable.
    (__mpxrt_init_env_vars): Add initialization of stop_handler.
    (__mpxrt_stop_handler): New function.
    (__mpxrt_stop): Ditto.
    * mpxrt/mpxrt-utils.h (mpx_rt_stop_mode_handler_t): New enum.
    * mpxrt/mpxrt.c (handler): Replace exit(255) with __mpxrt_stop
    function call.

From-SVN: r243928
2016-12-26 15:14:06 +00:00
Alexander Ivchenko 1dc9c11778 MAINTAINERS (Write After Approval): Add myself.
2016-12-26  Alexander Ivchenko  <alexander.ivchenko@intel.com>

            * MAINTAINERS (Write After Approval): Add myself.

From-SVN: r243927
2016-12-26 10:28:02 +00:00
Andreas Schwab cff411879c Summary: Whitespace cleanup
From-SVN: r243926
2016-12-26 10:16:15 +00:00
Eric Botcazou 4f4f634fff * doc/cpp.texi (Invocation): Remove space in command.
From-SVN: r243925
2016-12-26 09:36:33 +00:00
Eric Botcazou f15613c237 * doc/invoke.texi (SPARC options): Add missing documentation for -mlra.
From-SVN: r243924
2016-12-26 09:22:56 +00:00
Sandra Loosemore 71585576bc cpp.texi (Invocation): Revise to indicate that GCC driver options are only documented in the GCC manual.
2016-12-25  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/cpp.texi (Invocation): Revise to indicate that GCC driver
	options are only documented in the GCC manual.
	* doc/cppopts.texi: Delete documentation of GCC driver options 
	-o, -Wall, -Wtraditional, -Werror, -Wsystem-headers, -w,
	-pedantic, -pedantic-errors, -std=, -ansi, --help, --target-help, 
	-v, -version.  Update -Wcomment, -Wtrigraphs, -Wundef, 
	-Wexpansion-to-defined, -Wno-endif-labels, -traditional, 
	-traditional-cpp, -trigraphs to merge text previously in GCC manual.
	* doc/invoke.texi (Option Summary): Move -trigraphs, -traditional,
	and -traditional-cpp from C dialect options to preprocessor options.
	(C Dialect Options): Likewise.
	(Warning Options): Delete documentation of -Wcomment, -Wtrigraphs, 
	-Wexpansion-to-defined, -Wundef, and -Wno-endif-labels.

From-SVN: r243923
2016-12-25 19:31:02 -05:00
GCC Administrator 71382babc6 Daily bump.
From-SVN: r243922
2016-12-26 00:16:17 +00:00
GCC Administrator 7e1fe89616 Daily bump.
From-SVN: r243919
2016-12-25 00:16:21 +00:00
Richard Sandiford e7960be786 Make it cheaper to test whether an SSA name is a virtual operand
virtual_operand_p handled SSA names by looking at the flags of the
underlying variable.  This seems to be a relatively common source
of cache misses, mainly because virtual_operand_p is the first thing
tested by is_gimple_reg.

This patch caches the information in the SSA name itself.  Several
flags seem to be free so the patch arbitrarily uses public_flag.

Tested on aarch64-linux-gnu and x86_64-linux-gnu.  It improves
compile time by a small (<1%) but reproducable amount on the
tests I've tried.

gcc/
	* tree-core.h (tree_base): Document the meaning of public_flag
	for SSA names.
	* tree.h (SSA_NAME_IS_VIRTUAL_OPERAND): New macro.
	(SET_SSA_NAME_VAR_OR_IDENTIFIER): Record whether the variable
	is a virtual operand.
	* gimple-expr.h (virtual_operand_p): Use SSA_NAME_IS_VIRTUAL_OPERAND.

From-SVN: r243916
2016-12-24 14:30:18 +00:00
François Dumont 284a35df5d random.tcc: Fix usage of _OutputIteratorConcept.
2016-12-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/ext/random.tcc: Fix usage of _OutputIteratorConcept.

From-SVN: r243915
2016-12-24 14:13:58 +00:00
Jakub Jelinek 6b56d5f57d re PR middle-end/78901 (ICE: verify_gimple failed (error: statement marked for throw in middle of block))
PR middle-end/78901
	* except.c (nothrow_libfn_p): Expect libc_name_p to return
	const struct libc_name_struct *, if it returns NULL, return 0,
	otherwise check c_ver and use flag_isoc99 or flag_isoc11.
	* cfns.gperf: Add %struct-type and libc_name_struct definition.
	For all C89 C library functions add , 89 after the name, add
	C99 C library functions with , 99 and C11 C library functions
	with , 11 suffix.
	* cfns.h: Regenerated.

From-SVN: r243914
2016-12-24 12:15:44 +01:00
GCC Administrator 7b903e2868 Daily bump.
From-SVN: r243913
2016-12-24 00:16:19 +00:00
Andre Vehreschild f19dd7b634 class_assign_1.f08: New test.
gcc/testsuite/ChangeLog:

2016-12-23  Andre Vehreschild  <vehre@gcc.gnu.org>

	* gfortran.dg/class_assign_1.f08: New test.


gcc/fortran/ChangeLog:

2016-12-23  Andre Vehreschild  <vehre@gcc.gnu.org>

	* trans-expr.c (trans_class_assignment): Allocate memory of _vptr->size
        before assigning an allocatable class object.
	(gfc_trans_assignment_1): Flag that (re-)alloc of the class object
	shall be done.

From-SVN: r243909
2016-12-23 11:26:47 +01:00
Toma Tabacu cca8d0b265 MIPS: Cleanup the forcing of assembly output in error tests.
gcc/testsuite

	* gcc.target/mips/oddspreg-2.c (dg-options): Remove dg-skip-if for
	-fno-fat-lto-objects and add the -ffat-lto-objects option, along with
	an explanation for its purpose.
	* gcc.target/mips/oddspreg-3.c (dg-options): Likewise.
	* gcc.target/mips/oddspreg-6.c (dg-options): Likewise.
	* gcc.target/mips/no-dsp-1.c: Add an explanation for the purpose of
	-ffat-lto-objects.
	* gcc.target/mips/pr54240.c: Likewise.
	* gcc.target/mips/r10k-cache-barrier-14.c: Likewise.
	* gcc.target/mips/soft-float-1.c: Likewise.

From-SVN: r243908
2016-12-23 09:52:43 +00:00
GCC Administrator 1693722010 Daily bump.
From-SVN: r243904
2016-12-23 00:16:16 +00:00
Joseph Myers bef1898cfd * es.po: Update.
From-SVN: r243900
2016-12-22 23:55:31 +00:00
Ian Lance Taylor 28171b9d5d compiler: fix spurious redefinition error for anon struct
Change Struct_type::do_mangled_name to incorporate the field
    names even for hidden symbols. This is needed in cases where
    a package imports a type "S" that has an anonymous struct, e.g.
    
      // imported from some other package
      type S struct {
        X struct{ _ struct{} }
      }
    
    and then defines a local type that uses a structurally identical
    anonymous struct, e.g.
    
      // defined locally
      type T struct {
        U struct{ _ struct{} }
      }
    
    In the case above both types triggered the creation of hash/equal
    methods, but the method names were clashing (since both structs
    had the same mangled name).
    
    Fixes golang/go#18414
    
    Reviewed-on: https://go-review.googlesource.com/34621

From-SVN: r243899
2016-12-22 23:05:02 +00:00
Prathamesh Kulkarni cb66382056 tree-pretty-print.c (dump_generic_node): Change dump format for REALPART_EXPR and IMAGPART_EXPR with TDF_GIMPLE.
2016-12-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* tree-pretty-print.c (dump_generic_node): Change dump format for
	REALPART_EXPR and IMAGPART_EXPR with TDF_GIMPLE.

testsuite/
	* gcc.dg/gimplefe-20.c: New test-case.

From-SVN: r243898
2016-12-22 20:30:33 +00:00
Jason Merrill bcf77f8ae6 PR c++/78906 - ICE with member variable template
* pt.c (finish_template_variable): Use most_general_template.

From-SVN: r243897
2016-12-22 15:29:07 -05:00
Jason Merrill 67a5ad7cbd Feature-test macro for P0522R0, matching of template template arguments.
* c-cppbuiltin.c (c_cpp_builtins): Define
	__cpp_template_template_args.

From-SVN: r243896
2016-12-22 15:29:02 -05:00
Jason Merrill dd809fdeca PR c++/78898 - ICE on constructor with TTP
PR c++/42329
	* pt.c (unify): Don't look for a class template from a non-class.

From-SVN: r243890
2016-12-22 10:19:54 -05:00
Georg-Johann Lay 745b451267 re PR testsuite/52641 (Test cases fail for 16-bit int targets)
gcc/testsuite/
	PR testsuite/52641
	* gcc.dg/fold-and-rshift-2.c [int <= 2]: Use 32-bit int as needed.

From-SVN: r243889
2016-12-22 15:02:43 +00:00
Andreas Krebbel 8db9d05e0f varasm: Propagate litpool decl alignment to generated RTX.
When pushing a value into the literal pool the resulting decl might
get a higher alignment than the original expression depending on how a
target defines CONSTANT_ALIGNMENT.  Generating an RTX for the constant
pool access we currently use the alignment from the original
expression.  Changed with the attached patch.

This fixes a GCC 6 regression for S/390.  For arrays of string
constants as in the attached testcase encode_section_info is not able
to figure out that the constant pool slot is already properly aligned
since the mem_align field in the rtx is not set properly.

gcc/ChangeLog:

2016-12-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* varasm.c (build_constant_desc): Use the alignment of the var
	decl instead of the original expression.

gcc/testsuite/ChangeLog:

2016-12-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/litpool-str-1.c: New test.

From-SVN: r243888
2016-12-22 14:50:29 +00:00
Dominik Vogt cbbb9dabbb Run tests only if the machine supports the instruction set.
gcc/ChangeLog:

2016-12-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
	__S390_ARCH_LEVEL__.

gcc/testsuite/ChangeLog:

2016-12-22  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/md/setmem_long-1.c: Use "s390_useable_hw".
	* gcc.target/s390/md/rXsbg_mode_sXl.c: Likewise.
	* gcc.target/s390/md/andc-splitter-1.c: Likewise.
	* gcc.target/s390/md/andc-splitter-2.c: Likewise.
	* lib/gcc-dg.exp (gcc-dg-runtest): Export torture_current_flags.
	* gcc.target/s390/s390.exp: Import torture_current_flags.
	(check_effective_target_s390_useable_hw): New.
	(check_effective_target_s390_z900_hw): New.
	(check_effective_target_s390_z990_hw): New.
	(check_effective_target_s390_z9_ec_hw): New.
	(check_effective_target_s390_z10_hw): New.
	(check_effective_target_s390_z196_hw): New.
	(check_effective_target_s390_zEC12_hw): New.
	(check_effective_target_s390_z13_hw): New.
	(check_effective_target_z10_instructions): Removed.
	(torture tests): Add optimization level without -march=.
	Reorder torture tests for good cache usage.

From-SVN: r243887
2016-12-22 14:46:46 +00:00
Martin Liska a71dcca81e Fix tree-optimization/78886.
PR tree-optimization/78886
	* gcc.dg/tree-ssa/pr78886.c: New test.
	PR tree-optimization/78886
	* tree-ssa-strlen.c (handle_builtin_malloc): Return when LHS
	is equal to NULL.

From-SVN: r243886
2016-12-22 13:09:11 +00:00
Georg-Johann Lay 7fbb9b18cc re PR testsuite/52641 (Test cases fail for 16-bit int targets)
gcc/testsuite/
	PR testsuite/52641
	* gcc.dg/pr35258.c (main) <temp>: Use an integer value that has
	at least a size of 4.
	* gcc.dg/Walloca-1.c (foo1): Use alloca with 30000 (instead of 90000).
	* gcc.dg/graphite/pr46185.c: Require int32plus, size32plus.
	* gcc.dg/graphite/isl-ast-op-select.c: Same.
	* gcc.dg/graphite/pr42205-1.c: Require int32plus.
	* gcc.dg/graphite/pr42221.c: Same.
	* gcc.dg/tree-ssa/pr65136.c: Same.
	* gcc.dg/tree-ssa/sra-20.c: Same.
	* gcc.dg/graphite/scop-0.c: Require size32plus.
	* gcc.dg/graphite/scop-22.c: Same.
	* gcc.dg/graphite/scop-3.c: Same.
	* gcc.dg/graphite/scop-dsyr2k.c: Same.
	* gcc.dg/graphite/scop-dsyrk.c: Same.
	* gcc.dg/graphite/scop-mvt.c: Same.
	* gcc.dg/graphite/scop-sor.c: Same.
	* gcc.dg/tree-ssa/pr68529-3.c: Same.
	* gcc.dg/tree-ssa/pr66449.c [long != pointer]: Use intptr_t if.
	* gcc.dg/tree-ssa/pr70919.c [int <= 2]: Use 32-bit int as needed.
	* gcc.dg/tree-ssa/pr71408.c: Same.
	* gcc.dg/tree-ssa/ssa-dom-thread-8.c (f2) [long != pointer]: Use
	uintptr_t instead of long for int representation of address.
	* gcc.dg/tree-ssa/tailcall-7-run.c: Require trampolines.

From-SVN: r243885
2016-12-22 12:42:35 +00:00
Jakub Jelinek 35dddc5327 re PR middle-end/78858 (Bogus -Wnonnull warning involving strcmp with -fsanitize=undefined)
PR middle-end/78858
	* c-c++-common/ubsan/pr78858.c: New test.
	* gcc.dg/nonnull-5.c: New test.

From-SVN: r243884
2016-12-22 12:48:39 +01:00
Jakub Jelinek 0b435c1690 re PR bootstrap/78817 (stage2 bootstrap failure in vec.h:1613:5: error: argument 1 null where non-null expected after r243661)
PR bootstrap/78817
	* vec.h (vec<T, va_heap, vl_ptr>::safe_grow_cleared): Revert
	2016-12-15 change.

From-SVN: r243883
2016-12-22 09:53:56 +01:00
GCC Administrator 03c19813e7 Daily bump.
From-SVN: r243882
2016-12-22 00:16:16 +00:00
Jakub Jelinek b5f8e89ed7 re PR c++/72707 (local anonymous union member hides names in the same scope)
PR c++/72707
	* name-lookup.c (pushdecl_maybe_friend_1): Do check shadowing of
	artificial x if it is an anonymous union variable.

	* g++.dg/warn/Wshadow-12.C: New test.

From-SVN: r243877
2016-12-21 23:49:59 +01:00
Jakub Jelinek d8ee9c7e54 dwarf2.def (DW_FORM_ref_sup): Renamed to ...
* dwarf2.def (DW_FORM_ref_sup): Renamed to ...
	(DW_FORM_ref_sup4): ... this.  New form.
	(DW_FORM_ref_sup8): New form.

From-SVN: r243876
2016-12-21 23:48:51 +01:00
Vladimir Makarov bc13623efe re PR rtl-optimization/78580 (Segfault in gcc with multilib (-m32) and -ffixed-*)
2016-12-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/78580
	* ira-costs.c (find_costs_and_classes): Make regno_aclass
	translated into an allocno class.

2016-12-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/78580
	* gcc.target/i386/pr78580.c: New.

From-SVN: r243875
2016-12-21 22:20:11 +00:00
Jakub Jelinek 0dba79602a re PR bootstrap/78817 (stage2 bootstrap failure in vec.h:1613:5: error: argument 1 null where non-null expected after r243661)
PR bootstrap/78817
	* tree-pass.h (make_pass_post_ipa_warn): Declare.
	* builtins.c (validate_arglist): Adjust get_nonnull_args call.
	Check for NULL pointer argument to nonnull arg here.
	(validate_arg): Revert 2016-12-14 changes.
	* calls.h (get_nonnull_args): Remove declaration.
	* tree-ssa-ccp.c: Include diagnostic-core.h.
	(pass_data_post_ipa_warn): New variable.
	(pass_post_ipa_warn): New class.
	(pass_post_ipa_warn::execute): New method.
	(make_pass_post_ipa_warn): New function.
	* tree.h (get_nonnull_args): Declare.
	* tree.c (get_nonnull_args): New function.
	* calls.c (maybe_warn_null_arg): Removed.
	(maybe_warn_null_arg): Removed.
	(initialize_argument_information): Revert 2016-12-14 changes.
	* passes.def: Add pass_post_ipa_warn after first ccp after IPA.
c-family/
	* c-common.c (struct nonnull_arg_ctx): New type.
	(check_function_nonnull): Return bool instead of void.  Use
	nonnull_arg_ctx as context rather than just location_t.
	(check_nonnull_arg): Adjust for the new context type, set
	warned_p to true if a warning has been diagnosed.
	(check_function_arguments): Return bool instead of void.
	* c-common.h (check_function_arguments): Adjust prototype.
c/
	* c-typeck.c (build_function_call_vec): If check_function_arguments
	returns true, set TREE_NO_WARNING on CALL_EXPR.
cp/
	* typeck.c (cp_build_function_call_vec): If check_function_arguments
	returns true, set TREE_NO_WARNING on CALL_EXPR.
	* call.c (build_over_call): Likewise.

From-SVN: r243874
2016-12-21 23:15:59 +01:00
Jakub Jelinek bc2a38dff8 re PR c++/77830 (internal compiler error: in output_constructor_regular_field, at varasm.c:4968, when using constexpr (with testcase))
PR c++/77830
	* constexpr.c (cxx_eval_array_reference): Perform out of bounds
	verification even if lval is true, just allow one past the last
	element in that case.
	(cxx_eval_store_expression): Detect stores to out of bound
	ARRAY_REF.

	* g++.dg/cpp1y/pr77830.C: New test.
	* g++.dg/cpp0x/pr65398.C: Adjust expected diagnostics.

From-SVN: r243873
2016-12-21 22:58:23 +01:00
Jason Merrill 31bfc9b9dd Implement P0522R0, matching of template template arguments.
gcc/c-family/
	* c.opt (-fnew-ttp-matching): New flag.
	* c-opts.c (c_common_post_options): Default on if -std=c++1z.
gcc/cp/
	* pt.c (coerce_template_template_parms): Allow a template argument
	that's less specialized than the parameter.
	(unify_bound_ttp_args): Adjust parm's args to apply to arg's
	template.
	(coerce_template_args_for_ttp): Split out from
	lookup_template_class_1.
	(coerce_ttp_args_for_tta, store_defaulted_ttp)
	(lookup_defaulted_ttp, add_defaults_to_ttp): New.
	(process_partial_specialization): Set DECL_CONTEXT of
	template template-parameters.
	(coerce_template_parms): Only inform when complain.
	(expand_template_argument_pack): Handle error_mark_node.
	(convert_template_argument, template_args_equal, unify): Handle
	any_targ_node.
	* cp-tree.h (enum cp_tree_index): Add CPTI_ANY_TARG.
	(any_targ_node): New.
	* decl.c (cxx_init_decl_processing): Set it.
	* name-lookup.c (consider_binding_level): Ignore names with embedded
	spaces.

From-SVN: r243871
2016-12-21 14:39:04 -05:00
Jason Merrill 3c75aaa3d8 PR c++/42329 - deducing base template for template template arg
* pt.c (unify_bound_ttp_args): Split out from unify.
	(try_class_unification): Handle BOUND_TEMPLATE_TEMPLATE_PARM.
	(unify): Check for type/non-type mismatch early.
	[BOUND_TEMPLATE_TEMPLATE_PARM]: Try get_template_base.

From-SVN: r243870
2016-12-21 14:38:50 -05:00
Jason Merrill 57a6add274 Fix handling of explicit function template arguments with TTPs.
gcc/cp/
	* pt.c (coerce_template_parms): Consider variadic_args_p before
	complaining about too many template arguments.
libstdc++-v3/
	* testsuite/util/testsuite_tr1.h (test_property): Don't define both
	variadic and non-variadic overloads.

From-SVN: r243869
2016-12-21 14:38:44 -05:00
Jason Merrill a9410b4fe9 Check that a partial specialization is more specialized.
* pt.c (process_partial_specialization): Use
	get_partial_spec_bindings to check that the partial specialization
	is more specialized than the primary template.

From-SVN: r243868
2016-12-21 14:38:35 -05:00
Jason Merrill a93634ba09 Fixes for P0127R2 implementation.
* pt.c (convert_template_argument): Pass args to do_auto_deduction.
	(mark_template_parm): Handle deducibility from type of non-type
	argument here.
	(for_each_template_parm_r): Not here.

From-SVN: r243867
2016-12-21 14:38:29 -05:00
Pat Haugen 35f4cbd448 re PR rtl-optimization/11488 (Pre-regalloc scheduling severely worsens performance)
PR rtl-optimization/11488
	* common/config/rs6000/rs6000-common.c
	(rs6000_option_optimization_table): Enable -fsched-pressure.
	* config/rs6000/rs6000.c (TARGET_COMPUTE_PRESSURE_CLASSES): Define
	target hook.
	(rs6000_option_override_internal): Set default -fsched-pressure algorithm.
	(rs6000_compute_pressure_classes): Implement target hook.

From-SVN: r243866
2016-12-21 19:15:32 +00:00
Jason Merrill 0856b5d78d Improve C++ debug_tree.
* ptree.c (cxx_print_type): Print args of
	BOUND_TEMPLATE_TEMPLATE_PARM.
	(cxx_print_decl): Print DECL_TEMPLATE_PARMS.

From-SVN: r243865
2016-12-21 14:11:41 -05:00
Jason Merrill 0bcd172dbf PR c++/78767 - ICE with inherited constructor default argument
* method.c (strip_inheriting_ctors): Strip template as appropriate.

From-SVN: r243864
2016-12-21 14:10:23 -05:00
Bill Seurer 3a8f9451d9 [PATCH, v2, rs6000] pr65479 Add -fasynchronous-unwind-tables when the -fsanitize=address option is seen.
All feedback from the earlier version has been taken into account now.

This patch adds the -fasynchronous-unwind-tables option to compilations when
the -fsanitize=address option is seen but not if any
-fasynchronous-unwind-tables options were already specified.
-fasynchronous-unwind-tables causes a full strack trace to be produced when
the sanitizer detects an error.  Without the full trace several of the asan
test cases fail on powerpc.

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

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

[gcc]

2016-12-21  Bill Seurer  <seurer@linux.vnet.ibm.com>

	PR sanitizer/65479
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
	-fasynchronous-unwind-tables option when -fsanitize=address is
	specified.

From-SVN: r243863
2016-12-21 19:09:10 +00:00
Jason Merrill 8f0db5664a PR c++/78749 - friend in anonymous namespace
* decl.c (wrapup_globals_for_namespace): Don't complain about friend
	pseudo-template instantiations.

From-SVN: r243862
2016-12-21 13:28:54 -05:00