1. 01 Dec, 2018 7 commits
    • re PR c++/79629 (ICE on invalid code in tsubst_copy, at cp/pt.c:14477) · 16e48dd1
      	PR c++/79629
      	* g++.dg/other/error35.C: New test.
      
      From-SVN: r266712
      Marek Polacek committed
    • re PR c++/83856 (ICE in tsubst_copy;) · 8fc1ef71
      	PR c++/83856
      	* g++.dg/cpp1y/lambda-generic-83856.C: New test.
      
      From-SVN: r266711
      Marek Polacek committed
    • Implement P0634R3, Down with typename! · 96c35892
      	* parser.c (CP_PARSER_FLAGS_TYPENAME_OPTIONAL): New enumerator.
      	(cp_parser_type_name): Remove declaration.
      	(cp_parser_postfix_expression): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
      	to cp_parser_type_id.
      	(cp_parser_new_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL to
      	cp_parser_type_specifier_seq.
      	(cp_parser_lambda_declarator_opt): Pass
      	CP_PARSER_FLAGS_TYPENAME_OPTIONAL to
      	cp_parser_parameter_declaration_clause.
      	(cp_parser_condition): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator.
      	(cp_parser_simple_declaration): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_init_declarator.
      	(cp_parser_conversion_type_id): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_type_specifier_seq.
      	(cp_parser_default_type_template_argument): Pass
      	CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_type_id.
      	(cp_parser_template_parameter): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
      	to cp_parser_parameter_declaration.
      	(cp_parser_explicit_instantiation): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator.
      	(cp_parser_simple_type_specifier): Adjust call to cp_parser_type_name
      	to relay if we should treat the typename keyword as optional.  Maybe
      	call cp_parser_make_typename_type is parsing a template-id and it's
      	not a TYPE_DECL.
      	(cp_parser_type_name): Remove unused function.
      	(cp_parser_enum_specifier): Pass to CP_PARSER_FLAGS_NONE
      	cp_parser_type_specifier_seq.
      	(cp_parser_alias_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
      	to cp_parser_type_id.
      	(cp_parser_init_declarator): New parameter.  Pass it down to
      	cp_parser_declarator.
      	(cp_parser_declarator): New parameter.  Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator.  Pass the new parameter to
      	cp_parser_direct_declarator.
      	(cp_parser_direct_declarator): New parameter.  Pass it to
      	cp_parser_parameter_declaration_clause and cp_parser_declarator.
      	(cp_parser_declarator_id):
      	(cp_parser_type_id_1): New parameter.  Pass it to
      	cp_parser_type_specifier_seq.  Adjust call to cp_parser_declarator.
      	(cp_parser_type_id): New parameter.  Pass it to cp_parser_type_id_1.
      	(cp_parser_template_type_arg): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_type_id_1.
      	(cp_parser_trailing_type_id): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
      	to cp_parser_type_id_1.
      	(cp_parser_type_specifier_seq): New parameter.
      	(function_being_declared_is_template_p):
      	(cp_parser_parameter_declaration_clause): New parameter.  Pass it to
      	cp_parser_parameter_declaration_list.
      	(cp_parser_parameter_declaration_list): New parameter.  Pass it to
      	cp_parser_parameter_declaration.
      	(cp_parser_parameter_declaration): New parameter.  Pass it to
      	cp_parser_decl_specifier_seq.  Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator.
      	(cp_parser_member_declaration): Adjust call to
      	cp_parser_decl_specifier_seq to also include
      	CP_PARSER_FLAGS_TYPENAME_OPTIONAL.  Pass
      	CP_PARSER_FLAGS_TYPENAME_OPTIONAL to cp_parser_declarator.
      	(cp_parser_exception_declaration): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_type_specifier_seq and cp_parser_declarator.
      	(cp_parser_requirement_parameter_list): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_parameter_declaration_clause.
      	(cp_parser_constructor_declarator_p): Resolve the TYPENAME_TYPE.
      	(cp_parser_single_declaration): Pass CP_PARSER_FLAGS_TYPENAME_OPTIONAL
      	to cp_parser_decl_specifier_seq and cp_parser_init_declarator.
      	(cp_parser_cache_defarg): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator and cp_parser_parameter_declaration_list.
      	(cp_parser_objc_method_tail_params_opt): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_parameter_declaration.
      	(cp_parser_objc_class_ivars): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator.
      	(cp_parser_objc_try_catch_finally_statement): Pass CP_PARSER_FLAGS_NONE
      	to cp_parser_parameter_declaration
      	(cp_parser_objc_struct_declaration): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator.
      	(cp_parser_omp_for_loop_init): Pass CP_PARSER_FLAGS_NONE to
      	cp_parser_declarator and cp_parser_type_specifier_seq.
      
      	* g++.dg/cpp0x/alias-decl-43.C: Adjust dg-error.
      	* g++.dg/cpp0x/decltype67.C: Only expect error in c++17_down.
      	* g++.dg/cpp1z/typename1.C: New test.
      	* g++.dg/cpp2a/typename1.C: New test.
      	* g++.dg/cpp2a/typename10.C: New test.
      	* g++.dg/cpp2a/typename11.C: New test.
      	* g++.dg/cpp2a/typename2.C: New test.
      	* g++.dg/cpp2a/typename3.C: New test.
      	* g++.dg/cpp2a/typename4.C: New test.
      	* g++.dg/cpp2a/typename5.C: New test.
      	* g++.dg/cpp2a/typename6.C: New test.
      	* g++.dg/cpp2a/typename7.C: New test.
      	* g++.dg/cpp2a/typename8.C: New test.
      	* g++.dg/cpp2a/typename9.C: New test.
      	* g++.dg/diagnostic/missing-typename.C: Only run the test in
      	c++17_down.
      	* g++.dg/other/crash-9.C: Add template disambiguator.
      	* g++.dg/other/nontype-1.C: Only expect error in c++17_down.
      	* g++.dg/parse/crash13.C: Likewise.
      	* g++.dg/parse/error36.C: Likewise.
      	* g++.dg/parse/no-typename1.C: Likewise.
      	* g++.dg/parse/typedef2.C: Likewise.
      	* g++.dg/parse/typename11.C: Likewise.
      	* g++.dg/template/crash48.C: Adjust dg-error.
      	* g++.dg/template/dependent-name5.C: Only expect error in c++17_down.
      	Add dg-error.
      	* g++.dg/template/error29.C: Only expect error in c++17_down.
      	* g++.dg/template/nested5.C: Add template disambiguator.
      	* g++.dg/template/pr84789.C: Only expect error in c++17_down.
      	* g++.dg/template/static30.C: Add dg-error.
      	* g++.dg/template/typedef6.C: Adjust dg-error.
      	* g++.dg/template/typename3.C: Only expect error in c++17_down.
      
      From-SVN: r266710
      Marek Polacek committed
    • * gcc.dg/predict-22.c: Update expected output. · e770ab19
      From-SVN: r266709
      Jeff Law committed
    • re PR sanitizer/88289 (r266664 causes asan to fail on many/most tests on BE) · a5b25661
      	PR sanitizer/88289
      	* asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up
      	an off-by-one for BYTES_BIG_ENDIAN.
      
      From-SVN: r266708
      Jakub Jelinek committed
    • re PR target/54589 (struct offset add should be folded into address calculation) · 6b4f5050
      	PR target/54589
      	* combine.c (find_split_point): For invalid memory address
      	nonobj + obj + const, if reg + obj + const is valid addressing
      	mode, split at nonobj.  Use if rather than else if for the
      	fallback.  Comment fixes.
      
      	* gcc.target/i386/pr54589.c: New test.
      
      From-SVN: r266707
      Jakub Jelinek committed
    • Daily bump. · 1072cfdf
      From-SVN: r266705
      GCC Administrator committed
  2. 30 Nov, 2018 33 commits
    • coverage.c (get_coverage_counts): Use from_function_decl for precise function location. · 732779d0
      	* coverage.c (get_coverage_counts): Use from_function_decl for precise
      	function location.
      	* profile-count.c (profile_count::dump): Add handling for precise
      	profile quality.
      	* profile.c (compute_branch_probabilities): Rely on exec_counts instead
      	of profile_info to set profile_status of function.
      	(branch_prob): Do not set profile_status of function based on
      	profile_info. Done above based on exec_counts.
      
      From-SVN: r266702
      Indu Bhagat committed
    • re PR tree-optimization/88274 (ICE in check, at tree-vrp.c:188) · 4df6a906
      	PR tree-optimization/88274
      	* tree-ssa-reassoc.c (optimize_range_tests_xor,
      	optimize_range_tests_diff): If type has smaller precision than
      	corresponding mode or if it has non-standard min/max, compute
      	everything in a standard type for the precision.
      
      From-SVN: r266701
      Jakub Jelinek committed
    • re PR testsuite/85368 (phi-opt-11 test fails on IBM Z) · e26584b2
      	PR testsuite/85368
      	* params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param.
      	* tree-ssa-ifcombine.c (ifcombine_ifandif): If
      	--param logical-op-non-short-circuit is present, override
      	LOGICAL_OP_NON_SHORT_CIRCUIT value from the param.
      	* fold-const.c (fold_range_test, fold_truth_andor): Likewise.
      
      	* lib/target-supports.exp (logical_op_short_circuit): Remove.
      	* gcc.dg/builtin-bswap-7.c: Remove logical_op_short_circuit
      	effective target, drop -mbranch-cost= options from the test and
      	instead pass --param logical-op-non-short-circuit=0 or
      	--param logical-op-non-short-circuit=1 depending on what the
      	tests meant to test.
      	* gcc.dg/pr21643.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise.
      	* gcc.dg/tree-ssa/phi-opt-11.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-thread-14.c: Likewise.
      	* gcc.dg/tree-ssa/vrp47.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-dom-thread-11.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-dom-thread-16.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-dom-thread-14.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise.
      	* gcc.dg/tree-ssa/vrp87.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise.
      	* gcc.dg/tree-ssa/phi-opt-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-13.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-thread-11.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-28.c: Likewise.
      	* gcc.dg/binop-xor1.c: Likewise.
      	* gcc.dg/pr46309.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-dom-thread-18.c: New test.
      	* gcc.dg/tree-ssa/reassoc-32.c: Add
      	--param logical-op-non-short-circuit=1 to dg-options.
      	* gcc.dg/tree-ssa/reassoc-33.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
      	* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
      
      From-SVN: r266700
      Jakub Jelinek committed
    • optabs.c (expand_binop): Use "machine_mode" rather than "enum machine mode" in most recent change. · 2b86de4c
      	* optabs.c (expand_binop): Use "machine_mode" rather than
      	"enum machine mode" in most recent change.
      
      From-SVN: r266698
      Jeff Law committed
    • re PR middle-end/64242 (Longjmp expansion incorrect) · 71b14428
      	PR middle-end/64242
      	* builtins.c (expand_builtin_longjmp): Use a temporary when restoring
      	the frame pointer.
      	(expand_builtin_nonlocal_goto): Likewise.
      
      	* gcc.c-torture/execute/pr64242.c: New test.
      
      From-SVN: r266697
      Wilco Dijkstra committed
    • C++: fix-it hint for missing parentheses · 8ba109ce
      Consider:
      
        class t1
        {
        public:
          double length () const { return m_length; }
        private:
          double m_length;
        };
      
      missing-parens-fixit.C: In function 'bool test_1(const t1&)':
      missing-parens-fixit.C:14:15: error: invalid use of member function
        'double t1::length() const' (did you forget the '()' ?)
         14 |   return inst.length > 0.0;
            |          ~~~~~^~~~~~
      
      This patch adds a fix-it hint for the case where the member function
      takes no parameters, suggesting the addition of the parentheses:
      
         14 |   return inst.length > 0.0;
            |          ~~~~~^~~~~~
            |                     ()
      
      so that an IDE can potentially apply the fix.
      
      gcc/cp/ChangeLog:
      	* typeck2.c: Include "gcc-rich-location.h".
      	(cxx_incomplete_type_diagnostic): When complaining about possibly
      	missing parens, add a fix-it hint if the member function takes no
      	additional params.
      
      gcc/ChangeLog:
      	* diagnostic-core.h (emit_diagnostic): New decl.
      	* diagnostic.c (emit_diagnostic): New overload, taking a
      	rich_location *.
      
      gcc/testsuite/ChangeLog:
      	* g++.dg/parse/missing-parens-fixit.C: New test.
      
      From-SVN: r266696
      David Malcolm committed
    • pretty-print.c: add selftest::test_prefixes_and_wrapping · 553a316b
      gcc/ChangeLog:
      	* pretty-print.c (class selftest::test_pretty_printer): New
      	subclass of pretty_printer.
      	(selftest::test_prefixes_and_wrapping): New test.
      	(selftest::pretty_print_c_tests): Call it.
      
      From-SVN: r266695
      David Malcolm committed
    • Minimize clone counter memory usage in LTO. · ed1b53a0
      gcc/lto:
      
      	* lto-partition.c (privatize_symbol_name_1): Keep track of
      	non-unique symbol counters in the lto_clone_numbers hash
      	map.
      	(lto_promote_cross_file_statics): Allocate and free the
      	lto_clone_numbers hash map.
      	(lto_promote_statics_nonwpa): Free the lto_clone_numbers hash
      	map.
      
      From-SVN: r266693
      Michael Ploujnikov committed
    • Minimize clone counter memory usage in create_virtual_clone. · 53aedcce
      Based on Martin Jambour's suggestion:
      https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00111.html
      
      gcc:
      
      	* cgraph.h (clone_function_name): Add a variant that takes a
      	tree decl.
      	* cgraph.h (cgraph_node::create_virtual_clone): Add a new
      	argument: num_suffix.
      	* cgraphclones.c (cgraph_node::create_virtual_clone): Pass
      	num_suffix to clone_function_name.
      	(clone_function_name): Add a variant that takes a tree decl.
      	* ipa-cp.c (create_specialized_node): Keep track of clone
      	counters in clone_num_suffixes hash map.
      	(ipcp_driver): Free the counter hash map.
      	* ipa-hsa.c (process_hsa_functions): Creates at most one hsa
      	clone per function.
      
      From-SVN: r266692
      Michael Ploujnikov committed
    • Make function assembly more independent. · b75255a9
      This is achieved by having clone_function_name assign unique clone
      numbers for each function independently.
      
      gcc:
      
      	* cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids;
      	hash map.
      	(clone_function_name_numbered): Use clone_fn_ids.
      
      gcc/testsuite:
      
      	* gcc.dg/independent-cloneids-1.c: New test.
      
      From-SVN: r266691
      Michael Ploujnikov committed
    • re PR debug/85550 (-fdebug-types-section broken with DW_OP_addr in DW_AT_location) · d5b5f5ad
      	PR debug/85550
      	* g++.dg/debug/dwarf2/pr85550.C: New test.
      
      From-SVN: r266689
      Jakub Jelinek committed
    • [PR88288, OpenACC, libgomp] Adjust offsets for present data clauses · fe570ff8
      Make libgomp respect the on device offset of subarrays which may arise in
      present data clauses.
      
      	libgomp/
      	PR libgomp/88288
      	* oacc-parallel.c (GOACC_parallel_keyed): Add offset to devaddrs.
      	* testsuite/libgomp.oacc-c-c++-common/pr88288.c: New test.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r266688
      Cesar Philippidis committed
    • [C++] Use existing local variable in cp_parser_oacc_enter_exit_data · 344b0fdf
      	gcc/cp/
      	* parser.c (cp_parser_oacc_enter_exit_data): Use existing local
      	variable.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r266687
      James Norris committed
    • [PR87924] Add (XFAILed) test cases for OpenACC wait clauses without async-arguments · 020dd8e4
      	gcc/testsuite/
      	PR c/87924
      	* c-c++-common/goacc/asyncwait-5.c: Update.
      	* gfortran.dg/goacc/asyncwait-5.f: Likewise.
      
      From-SVN: r266686
      Thomas Schwinge committed
    • Clean up Fortran OpenACC wait clause handling · fc2a1f2f
      "wait" can be deduced from "wait_list".
      
      	gcc/fortran/
      	* gfortran.h (struct gfc_omp_clauses): Remove "wait".  Adjust all
      	users.
      
      From-SVN: r266685
      Thomas Schwinge committed
    • Support multiple OpenACC wait clauses · c34f4fbc
      Support for this is not explicitly called for in OpenACC 2.6, but given that
      GCC internally decomposes "wait (1, 2)" into "wait (1) wait (2)" (similar for
      other clauses, too), it's reasonable to also support that syntax in the front
      ends -- which happens to already be the case for C, C++, and easy enough to do
      for Fortran.
      
      	gcc/fortran/
      	* openmp.c (gfc_match_omp_clauses): Support multiple OpenACC wait
      	clauses.
      	gcc/testsuite/
      	* c-c++-common/goacc/asyncwait-5.c: New file.
      	* gfortran.dg/goacc/asyncwait-5.f: Likewise.
      
      From-SVN: r266684
      Thomas Schwinge committed
    • Add libgomp.oacc-fortran/lib-16-2.f90 · c223608f
      This is a copy of libgomp.oacc-fortran/lib-16.f90, but does 'include
      "openacc_lib.h"' instead of 'use openacc'.
      
      	libgomp/
      	* testsuite/libgomp.oacc-fortran/lib-16-2.f90: New file.
      
      From-SVN: r266683
      Thomas Schwinge committed
    • re PR rtl-optimization/88179 ([MIPS] pr84941.c ICE in… · 9cb95c07
      re PR rtl-optimization/88179 ([MIPS]  pr84941.c ICE in lra_eliminate_reg_if_possible at lra-eliminations.c:1393  start with r266385)
      
      2018-11-30  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/88179
      	* lra-constraints.c (address_eliminator::address_eliminator):
      	Don't eleminate regs in illegitimate address.
      
      From-SVN: r266682
      Vladimir Makarov committed
    • re PR target/87496 (ICE in aggregate_value_p at gcc/function.c:2046) · 8863a902
      gcc/testsuite/
      	PR target/87496
      	* gcc.target/powerpc/pr86324-1.c: Add dg-skip-if selector.
      	Add -mcpu=power7 option.
      
      From-SVN: r266680
      Peter Bergner committed
    • Initialize backtrace state once · 854cedfd
      From backtrace.h for backtrace_create_state:
      
         Calling this function allocates resources that can not be freed.
         There is no backtrace_free_state function.  The state is used to
         cache information that is expensive to recompute.  Programs are
         expected to call this function at most once and to save the return
         value for all later calls to backtrace functions.
      
      So instead of calling backtrace_create_state every time we wish to
      show a backtrace, do it once and store the result in a static
      variable.  libbacktrace allows multiple threads to access the state,
      so no need to use TLS.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-11-30  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/88137
      	* runtime/backtrace.c (show_backtrace): Make lbstate a static
      	variable, initialize once.
      
      From-SVN: r266677
      Janne Blomqvist committed
    • Implement P0457R2 String Prefix and Suffix Checking. · 5bd624fb
      2018-11-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	Implement P0457R2 String Prefix and Suffix Checking.
      	* include/bits/basic_string.h: Add starts_with, ends_with members.
      	* include/std/string_view: Ditto.
      	* testsuite/21_strings/basic_string/operations/starts_with/
      	char/1.cc: New test.
      	* testsuite/21_strings/basic_string/operations/starts_with/
      	wchar_t/1.cc: New test.
      	* testsuite/21_strings/basic_string/operations/ends_with/
      	char/1.cc: New test.
      	* testsuite/21_strings/basic_string/operations/ends_with/
      	wchar_t/1.cc: New test.
      	* testsuite/21_strings/basic_string_view/operations/starts_with/
      	char/1.cc: New test.
      	* testsuite/21_strings/basic_string_view/operations/starts_with/
      	wchar_t/1.cc: New test.
      	* testsuite/21_strings/basic_string_view/operations/ends_with/
      	char/1.cc: New test.
      	* testsuite/21_strings/basic_string_view/operations/ends_with/
      	wchar_t/1.cc: New test.
      
      From-SVN: r266674
      Edward Smith-Rowland committed
    • Pre-emptively support P0646R1 for std container erasure. · 0b44b4b8
      2018-11-30  Edward Smith-Rowland  <3dw4rd@verizon.net>
      
      	Pre-emptively support P0646R1 for std container erasure.
      	* include/bits/erase_if.h: Accumulate and return number of erased nodes.
      	* include/std/forward_list (): Return number of erased items.
      	* include/std/list (): Ditto.
      	* include/std/map (): Ditto.
      	* include/std/set (): Ditto.
      	* include/std/string (): Ditto.
      	* include/std/unordered_map (): Ditto.
      	* include/std/unordered_set (): Ditto.
      	* include/std/vector (): Ditto.
      	* testsuite/21_strings/basic_string/erasure.cc: Test number of erasures.
      	* testsuite/23_containers/deque/erasure.cc: Ditto.
      	* testsuite/23_containers/forward_list/erasure.cc: Ditto.
      	* testsuite/23_containers/list/erasure.cc: Ditto.
      	* testsuite/23_containers/map/erasure.cc: Ditto.
      	* testsuite/23_containers/set/erasure.cc: Ditto.
      	* testsuite/23_containers/unordered_map/erasure.cc: Ditto.
      	* testsuite/23_containers/unordered_set/erasure.cc: Ditto.
      	* testsuite/23_containers/vector/erasure.cc: Ditto.
      
      From-SVN: r266672
      Edward Smith-Rowland committed
    • Fix ICE in substring locations from macros in header files (PR preprocessor/88257) · ef33afeb
      PR preprocessor/88257 reports an ICE on gcc.dg/format/pr78304.c
      when compiled using g++:
      
      void test (const char *msg)
      {
        printf ("size: %" PRIu32 "\n", msg);
      }
      
      due to mismatching files (and line maps) between
      linemap_resolve_location and expand_location_to_spelling_point
      when PRIu32 is defined in a system header.
      
      The root cause is that expand_location_to_spelling_point stops
      unwinding locations when it reaches a system header, whereas
      linemap_resolve_location can resolve into a system header,
      which can lead to locations within get_substring_ranges_for_loc
      getting out of sync, and using the wrong line map.
      
      This patch fixes the issue by checking that the files are the
      same.
      
      gcc/ChangeLog:
      	PR preprocessor/88257
      	* input.c (get_substring_ranges_for_loc): Fix indentation.
      	Bulletproof against getting a different files back from
      	linemap_resolve_location and expand_location_to_spelling_point.
      
      gcc/testsuite/ChangeLog:
      	PR preprocessor/88257
      	* c-c++-common/Wformat-pr88257.c: New test.
      	* c-c++-common/Wformat-pr88257.h: New test header.
      	* c-c++-common/empty.h: New test header.
      
      From-SVN: r266671
      David Malcolm committed
    • [libbacktrace] Add tests for unused formats · 187b9e1d
      When building libbacktrace, we typically use elf.c, and don't build pecoff.c,
      xcoff.c or unknown.c.
      
      Add testcases that use unused format to ensure that we also build and
      test those on a typical development setup.
      
      Bootstrapped and reg-tested on x86_64.
      
      2018-11-30  Tom de Vries  <tdevries@suse.de>
      
      	* Makefile.am (check_PROGRAMS): Add test_elf, test_xcoff_32,
      	test_xcoff_64, test_pecoff and test_unknown.
      	* Makefile.in: Regenerate.
      	* test_format.c: New file.
      
      From-SVN: r266668
      Tom de Vries committed
    • [libbacktrace] Test check_PROGRAMS without mmap · 9b7d1a97
      When building libbacktrace, we typically use mmapio.c and mmap.c, and don't
      build read.c and alloc.c.
      
      Add testcases that use read.c and alloc.c to ensure that we also build and
      test those on a typical development setup.
      
      Bootstrapped and reg-tested on x86_64.
      
      2018-11-30  Tom de Vries  <tdevries@suse.de>
      
      	* Makefile.am : Add _with_alloc version for each test in
      	check_PROGRAMS.
      	* Makefile.in: Regenerate.
      
      From-SVN: r266667
      Tom de Vries committed
    • Call decl_default_tls_model with a proper type (PR gcov-profile/88279). · 37eafc06
      2018-11-30  Alexander Monakov  <amonakov@ispras.ru>
      
      	PR gcov-profile/88279
      	* tree-profile.c (init_ic_make_global_vars): Call
      	decl_default_tls_model for variable and not it's type.
      
      From-SVN: r266666
      Alexander Monakov committed
    • [PATCH][GCC][ARM] Ensure dotproduct is only enabled on armv8 neon · 427071d4
      
      gcc/ChangeLog:
      
      2018-11-30  Sam Tebbs<sam.tebbs@arm.com>
      
      	* config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint.
      
      gcc/testsuite/ChangeLog:
      
      2018-11-30  Sam Tebbs<sam.tebbs@arm.com>
      
      	* gcc.target/arm/neon-dotprod-restriction.c: New file.
      	* lib/target-supports.exp
      	(check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): Include
      	stdint.h.
      
      From-SVN: r266665
      Sam Tebbs committed
    • Make red zone size more flexible for stack variables (PR sanitizer/81715). · 6e644a50
      2018-11-30  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81715
      	* asan.c (asan_shadow_cst): Remove, partially transform
      	into flush_redzone_payload.
      	(RZ_BUFFER_SIZE): New.
      	(struct asan_redzone_buffer): New.
      	(asan_redzone_buffer::emit_redzone_byte): Likewise.
      	(asan_redzone_buffer::flush_redzone_payload): Likewise.
      	(asan_redzone_buffer::flush_if_full): Likewise.
      	(asan_emit_stack_protection): Use asan_redzone_buffer class
      	that is responsible for proper aligned stores and flushing
      	of shadow memory payload.
      	* asan.h (ASAN_MIN_RED_ZONE_SIZE): New.
      	(asan_var_and_redzone_size): Likewise.
      	* cfgexpand.c (expand_stack_vars): Use smaller alignment
      	(ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory
      	for automatic variables more compact.
      2018-11-30  Martin Liska  <mliska@suse.cz>
      
      	PR sanitizer/81715
      	* c-c++-common/asan/asan-stack-small.c: New test.
      
      From-SVN: r266664
      Martin Liska committed
    • [RS6000] PowerPC64 soft-float · b49f1a7e
      This patch aims to prevent long sequences loading soft-float
      constants.  For 32-bit, it makes sense to load values inline to a gpr
      with lis, addi, but not so much for 64-bit where a 5 insn sequence
      might be needed for each gpr.  For TFmode in particular, a 10 insn
      sequence is reduced to 2 loads from memory plus 1 or 2 address setup
      insns.
      
      	* config/rs6000/predicates.md (easy_fp_constant): Avoid long
      	dependent insn sequences.
      	* config/rs6000/rs6000.c (num_insns_constant): Support long
      	double constants.
      	* config/rs6000/rs6000.md (mov<mode>_softfloat <FMOVE128>): Adjust
      	length attribute.
      
      From-SVN: r266663
      Alan Modra committed
    • [RS6000] num_insns_constant ICE · ceb8c8c4
      This patch came about from investigating an ICE that appeared when I
      was retesting an old half-baked patch of mine to rs6000_rtx_costs.
      If a const_double is fed to rs6000_is_valid_and_mask and from there to
      rs6000_is_valid_mask where INTVAL is used, gcc will ICE.
      
      The num_insns_constant ICE was introduced with git commit f337168d97.
      However, the code was buggy before that.  There was no point in
      testing for a mask since the mask predicates only handle const_int.
      In fact, I don't think the function ever handled floating point
      constants that might match a load of minus one and mask.  It does now.
      I've added a few comments regarding splitters so the next person
      looking at this code can see how this works.
      
      The patch also extracts code out of num_insns_constant that needed to
      handle multiple gprs for DFmode constants in 32-bit mode, to a
      function that handles multiple gprs a little more generally.  I don't
      think there is any need for anything but the 32-bit DFmode case
      currently, but this allows for possible future uses.  The
      CONST_WIDE_INT case is also not used currently, and needed fixing.
      Adding CONST_WIDE_INT_NUNITS - 1 only makes sense if the elements of
      the array were being shifted into a register of size larger than the
      element size (which is 64-bits).
      
      	* config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from
      	num_insns_constant_wide.  Make static.  Revise comment.
      	(num_insns_constant_multi): New function.
      	(num_insns_constant): Formatting.  Correct CONST_WIDE_INT
      	calculation.  Simplify and extract code common to both
      	CONST_INT and CONST_DOUBLE.  Add gcc_unreachable for unhandled
      	const_double modes.
      	* config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete.
      
      From-SVN: r266662
      Alan Modra committed
    • gimple-parser.c (c_parser_gimple_postfix_expression): Parse _Literal (type) { ... · f44697b7
      2018-11-30  Richard Biener  <rguenther@suse.de>
      
      	c/
      	* gimple-parser.c (c_parser_gimple_postfix_expression): Parse
      	_Literal (type) { ... } as empty aggregate or vector constructor.
      
      	* gcc.dg/gimplefe-34.c: New testcase.
      	* gcc.dg/gimplefe-35.c: Likewise.
      
      From-SVN: r266661
      Richard Biener committed
    • Restrict vector extension to use 128bit vectors (PR testsuite/88265). · eea34f20
      2018-11-30  Martin Liska  <mliska@suse.cz>
      
      	PR testsuite/88265
      	* gfortran.dg/simd-builtins-1.f90: Restrict to 128b vectors.
      	* gfortran.dg/simd-builtins-6.f90: Likewise.
      
      From-SVN: r266660
      Martin Liska committed