1. 16 Jan, 2019 2 commits
  2. 15 Jan, 2019 24 commits
    • godump.c (go_output_typedef): When outputting a typedef... · 5686a6b7
      gcc/:
              * godump.c (go_output_typedef): When outputting a typedef, refer
      	to the underlying type by its name and not its structure.
      gcc/testsuite:
              * gcc.misc-tests/godump-1.c: Add test case for typedef before
      	struct.
      
      From-SVN: r267958
      Nikhil Benesch committed
    • Fix ICE on class-template argument deduction (PR c++/88795) · 1abb44f8
      PR c++/88795 reports an ICE building a function_type for a deduction guide
      when the substitution into the function signature fails, due to an
      error_mark_node being returned from tsubst_arg_types but not being checked
      for.  This error_mark_node gets used as the TYPE_ARG_TYPES, leading to
      ICEs in various places that assume this is a TREE_LIST.
      
      This patch checks the result of tsubst_arg_types and propagates the failure
      if it returns error_mark_node.  It also adds an assertion to
      build_function_type, to fail faster if passed in error_mark_node.
      
      gcc/cp/ChangeLog:
      	PR c++/88795
      	* pt.c (build_deduction_guide): Bail out if tsubst_arg_types
      	fails.
      
      gcc/testsuite/ChangeLog:
      	PR c++/88795
      	* g++.dg/template/pr88795.C: New test.
      
      gcc/ChangeLog:
      	PR c++/88795
      	* tree.c (build_function_type): Assert that arg_types is not
      	error_mark_node.
      
      From-SVN: r267957
      David Malcolm committed
    • runtime: add padding to FFI type of struct ending with zero-sized field · b7ec44e8
          
          CL 157557 changes the compiler to add one byte padding to
          non-empty struct ending with a zero-sized field. Add the same
          padding to the FFI type, so reflect.Call works.
          
          This fixes test/fixedbugs/issue26335.go in the main repo.
          
          Reviewed-on: https://go-review.googlesource.com/c/158018
      
      From-SVN: r267956
      Ian Lance Taylor committed
    • [D] Move building of typeof(null) values to a common function. · 5e95646e
      gcc/d/ChangeLog:
      
      	* d-codegen.cc (build_typeof_null_value): New function.
      	* d-tree.h (build_typeof_null_value): Declare.
      	* d-convert.cc (convert_expr): Use build_typeof_null_value.
      	* expr.cc (ExprVisitor::visit(NullExp)): Likewise.
      
      From-SVN: r267955
      Iain Buclaw committed
    • re PR fortran/43136 (Excess copy-in/copy-out with character argument) · 37879e01
      2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/43136
      	* resolve.c (resolve_array_ref): Add equal_length argument; set it
      	if the length of the substring equals that of the orignal
      	variable.
      	(resolve_ref): Remove the substring if it is equal in length to
      	the original variable, unless it is an EXPR_SUBSTRING).
      
      2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/43136
      	* gfortran.dg/actual_array_substr_3.f90: New test.
      
      From-SVN: r267954
      Thomas Koenig committed
    • re PR fortran/43072 (unneeded temporary (s=s+f(a))) · 0335cc37
      2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/43072
      	* resolve.c (resolve_array_ref): Add equal_length argument; set it
      	if the length of the substring equals that of the orignal
      	variable.
      	(resolve_ref): Remove the substring if it is equal in length to
      	the original variable, unless it is an EXPR_SUBSTRING).
      
      2019-01-15  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/43072
      	* gfortran.dg/actual_array_substr_3.f90: New test.
      
      From-SVN: r267953
      Thomas Koenig committed
    • compiler, runtime: panic on uncomparable map key, even if map is empty · 6a0c8e77
          
          This ports https://golang.org/cl/155918 from the master repo.
          
              runtime: panic on uncomparable map key, even if map is empty
          
              Reorg map flags a bit so we don't need any extra space for the extra flag.
          
          This is a pre-req for updating libgo to the Go 1.12beta2 release.
          
          Reviewed-on: https://go-review.googlesource.com/c/157858
      
      From-SVN: r267950
      Ian Lance Taylor committed
    • re PR fortran/81849 (Size of automatic array argument specified by host-associated variable.) · a81a6d58
      2019-01-15  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/81849
      	* resolve.c (resolve_symbol): Host associated varaibles can appear
      	in the specification statement of a RESULT array.
      
      2019-01-15  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/81849
      	* gfortran.dg/pr81849.f90: New test.
      
      From-SVN: r267948
      Steven G. Kargl committed
    • trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs that are indirect references; ie. · 92f3a180
      2019-01-15  Paul Thomas  <pault@gcc.gnu.org>
      
      	* trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): Deal with exprs
      	that are indirect references; ie. dummy arguments.
      
      2019-01-15  Paul Thomas  <pault@gcc.gnu.org>
      
      	* gfortran.dg/ISO_Fortran_binding_2.c : Change reference to
      	ISO_Fortran_binding_2.h.
      
      From-SVN: r267946
      Paul Thomas committed
    • re PR c++/88866 (g++.dg/cpp0x/variadic126.C fails with -std=c++2a) · 51177d3d
      	PR c++/88866
      	* g++.dg/cpp0x/variadic126.C: Tweak dg-error.
      
      From-SVN: r267944
      Marek Polacek committed
    • * g++.dg/ext/utf-cvt-char8_t.C: Pass -fsigned-char. · f60026c5
      From-SVN: r267942
      Jason Merrill committed
    • PR inline-asm/52813 revisited · 99063eee
      The original patch for this PR made it an error to list the stack
      pointer in the clobber list of an inline asm.  However, the general
      feeling seemed to be that going straight to a hard error was too harsh,
      since there's quite a bit of existing code that has the clobber.
      
      This patch implements the compromise discussed on IRC of making it
      a -Wdeprecated warning instead.
      
      2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR inline-asm/52813
      	* doc/extend.texi: Document that listing the stack pointer in the
      	clobber list of an asm is a deprecated feature.
      	* common.opt (Wdeprecated): Moved from c-family/c.opt.
      	* cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
      	warning instead of an error for clobbers of the stack pointer.
      	Add a note explaining why.
      
      gcc/c-family/
      	PR inline-asm/52813
      	* c.opt (Wdeprecated): Move documentation and variable to common.opt.
      
      gcc/d/
      	PR inline-asm/52813
      	* lang.opt (Wdeprecated): Reference common.opt instead of c.opt.
      
      gcc/testsuite/
      	PR inline-asm/52813
      	* gcc.target/i386/pr52813.c (test1): Turn the diagnostic into a
      	-Wdeprecated warning and expect a following note:.
      
      From-SVN: r267941
      Richard Sandiford committed
    • re PR debug/88046 (ICE in add_data_member_location_attribute at… · 17f78160
      re PR debug/88046 (ICE in add_data_member_location_attribute at gcc/dwarf2out.c:19237 since r261885)
      
      2019-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR debug/88046
      	* dwarf2out.c (gen_member_die): Do not generate inheritance
      	DIEs late.
      
      	* g++.dg/lto/pr88046_0.C: New testcase.
      
      From-SVN: r267940
      Richard Biener committed
    • re PR tree-optimization/88855 (ICE: verify_ssa failed (error:… · 41bc37ba
      re PR tree-optimization/88855 (ICE: verify_ssa failed (error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set))
      
      2019-01-15  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/88855
      	* tree-if-conv.c (combine_blocks): Collect
      	SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
      
      	* gcc.dg/pr88855.c: New testcase.
      
      From-SVN: r267939
      Richard Biener committed
    • Update value of __cpp_lib_shared_ptr_arrays macro · 10ddff67
      	* include/bits/shared_ptr_base.h (__cpp_lib_shared_ptr_arrays): Define
      	as 201611L, because P0497R0 changes are supported.
      	* include/std/version (__cpp_lib_shared_ptr_arrays): Likewise.
      
      From-SVN: r267938
      Jonathan Wakely committed
    • Fix more missing or incorrect feature test macros · 6e3dd211
      	* include/bits/erase_if.h [__cplusplus > 201703L]
      	(__cpp_lib_erase_if): Only define for C++2a.
      	* include/std/iterator [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
      	(__cpp_lib_null_iterators): Define.
      	* include/std/version [__cplusplus >= 201402L && !_GLIBCXX_DEBUG]
      	(__cpp_lib_null_iterators): Define.
      	[__cpp_impl_destroying_delete] (__cpp_lib_destroying_delete): Define.
      
      From-SVN: r267937
      Jonathan Wakely committed
    • Fix missing or incorrect feature test macros · 56a9eaf9
      	* doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2
      	status.
      	* include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms):
      	Define.
      	* include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3
      	changes are supported.
      	* include/std/optional (__cpp_lib_optional): Likewise.
      	* include/std/variant (__cpp_lib_variant): Likewise.
      	* include/std/version [!__STRICT_ANSI__]
      	(__cpp_lib_uncaught_exceptions): Define as long integer.
      	[__cplusplus >= 201703L] (__cpp_lib_any)
      	(__cpp_lib_raw_memory_algorithms, __cpp_lib_uncaught_exceptions)
      	(__cpp_lib_variant): Define for C++17.
      	[__cplusplus >= 201703L] (__cpp_lib_optional): Update value and define
      	as long integer.
      	* libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long
      	integer.
      
      From-SVN: r267936
      Jonathan Wakely committed
    • [nvptx] Handle assignment to gang-level reduction variable · d41d952c
      2019-01-15  Tom de Vries  <tdevries@suse.de>
      
      	PR target/80547
      	* config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
      	lhs == NULL_TREE for gang-level reduction.
      
      	* testsuite/libgomp.oacc-c-c++-common/gang-reduction-var-assignment.c:
      	New test.
      
      From-SVN: r267934
      Tom de Vries committed
    • re PR ipa/88788 (Infinite loop in malloc_candidate_p_1 since r264838) · 4882e5ba
      2019-01-15  Richard Biener  <rguenther@suse.de>
      	    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR ipa/88788
      	* ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
      	return true if SSA_NAME is already marked in visited bitmap.
      	(malloc_candidate_p): Pass visited to malloc_candidate_p_1.
      
      Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
      
      From-SVN: r267933
      Richard Biener committed
    • decl.c (start_decl): Improve error location. · 079a6680
      /cp
      2019-01-15  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (start_decl): Improve error location.
      	* decl2.c (grokfield): Likewise.
      
      /testsuite
      2019-01-15  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/typedef-initialized.C: New.
      
      /cp
      2019-01-15  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl.c (grokdeclarator): Move further up the location_t loc
      	declaration and use the location when building a TYPE_DECL for
      	a typedef name.
      	* decl2.c (grokbitfield): Use DECL_SOURCE_LOCATION in the error
      	about an ill-formed bit-field as typedef.
      
      /testsuite
      2019-01-15  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/bitfld3.C: New.
      
      From-SVN: r267932
      Paolo Carlini committed
    • re PR tree-optimization/88775 (Optimize std::string assignment) · 93aa3c4a
      	PR tree-optimization/88775
      	* match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
      	equal == 0 equality pointer comparisons some more if compared in
      	integral types and either one points to an automatic var and the
      	other to a global, or we can prove at least one points to the middle
      	or both point to start or both point to end.
      
      	* gcc.dg/tree-ssa/pr88775-1.c: New test.
      	* gcc.dg/tree-ssa/pr88775-2.c: New test.
      
      From-SVN: r267931
      Jakub Jelinek committed
    • Lower sampling rate for autofdo bootstrap · 6facd01f
      autofdo create_gcov uses a lot of memory for large sample files.
      Since gcc runs quite long the sample files generated during
      the bootstrap are fairly ig.
      
      Currently I can't even build make autoprofiledbootstrap on my system at
      home because create_gcov needs more than 12GB and runs out of memory.
      
      This should probably be fixed in create_gcov, but for now
      lowering the sampling rate works well enough for me. The bootstrap
      run is long enough that it gets good enough data in any case.
      
      gcc/:
      2019-01-14  Andi Kleen  <ak@linux.intel.com>
      
      	* Makefile.in: Lower autofdo sampling rate by 10x.
      	* Makefile.tpl: Dito.
      
      From-SVN: r267930
      Andi Kleen committed
    • Daily bump. · 708efa49
      From-SVN: r267929
      GCC Administrator committed
  3. 14 Jan, 2019 13 commits
    • PR c++/88825 - ICE with bogus function return type deduction. · f80aa399
      	* typeck.c (can_do_nrvo_p): Check error_mark_node.
      
      	* g++.dg/cpp1y/auto-fn55.C: New test.
      
      From-SVN: r267926
      Marek Polacek committed
    • c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision and… · a30d0196
      c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision and __cpp_nontype_template_parameter_auto.
      
      	* c-cppbuiltin.c (c_cpp_builtin): Define __cpp_guaranteed_copy_elision
      	and __cpp_nontype_template_parameter_auto.  Add a comment that
      	__cpp_template_auto is deprecated.
      
      	* g++.dg/cpp1z/feat-cxx1z.C: Add tests for
      	__cpp_guaranteed_copy_elision and __cpp_nontype_template_parameter_auto
      	feature test macros.
      	* g++.dg/cpp2a/feat-cxx2a.C: Likewise.
      
      From-SVN: r267925
      Jakub Jelinek committed
    • PR c++/88830 - ICE with abstract class. · 345364cf
      	* decl2.c (maybe_emit_vtables): Check CLASSTYPE_LAZY_DESTRUCTOR.
      	Fix formatting.
      
      	* g++.dg/other/abstract7.C: New test.
      
      From-SVN: r267924
      Marek Polacek committed
    • Implement P0482R5, char8_t: A type for UTF-8 characters and strings · 2d91f79d
      gcc/cp/
      	* cvt.c (type_promotes_to): Handle char8_t promotion.
      	* decl.c (grokdeclarator): Handle invalid type specifier
      	combinations involving char8_t.
      	* lex.c (init_reswords): Add char8_t as a reserved word.
      	* mangle.c (write_builtin_type): Add name mangling for char8_t (Du).
      	* parser.c (cp_keyword_starts_decl_specifier_p)
      	(cp_parser_simple_type_specifier): Recognize char8_t as a simple
      	type specifier.
      	(cp_parser_string_literal): Use char8_array_type_node for the type
      	of CPP_UTF8STRING.
      	(cp_parser_set_decl_spec_type): Tolerate char8_t typedefs in system
      	headers.
      	* rtti.c (emit_support_tinfos): type_info support for char8_t.
      	* tree.c (char_type_p): Recognize char8_t as a character type.
      	* typeck.c (string_conv_p): Handle conversions of u8 string
      	literals of char8_t type.
      	(check_literal_operator_args): Handle UDLs with u8 string literals
      	of char8_t type.
      	* typeck2.c (ordinary_char_type_p): New.
      	(digest_init_r): Disallow initializing a char array with a u8 string
      	literal.
      gcc/c-family/
      	* c-common.c (c_common_reswords): Add char8_t.
      	(fix_string_type): Use char8_t for the type of u8 string literals.
      	(c_common_get_alias_set): char8_t doesn't alias.
      	(c_common_nodes_and_builtins): Define char8_t as a builtin type in
      	C++.
      	(c_stddef_cpp_builtins): Add __CHAR8_TYPE__.
      	(keyword_begins_type_specifier): Add RID_CHAR8.
      	* c-common.h (rid): Add RID_CHAR8.
      	(c_tree_index): Add CTI_CHAR8_TYPE and CTI_CHAR8_ARRAY_TYPE.
      	Define D_CXX_CHAR8_T and D_CXX_CHAR8_T_FLAGS.
      	Define char8_type_node and char8_array_type_node.
      	* c-cppbuiltin.c (cpp_atomic_builtins): Predefine
      	__GCC_ATOMIC_CHAR8_T_LOCK_FREE.
      	(c_cpp_builtins): Predefine __cpp_char8_t.
      	* c-lex.c (lex_string): Use char8_array_type_node as the type of
      	CPP_UTF8STRING.
      	(lex_charconst): Use char8_type_node as the type of CPP_UTF8CHAR.
      	* c-opts.c: If not otherwise specified, enable -fchar8_t when
      	targeting C++2a.
      	* c.opt: Add the -fchar8_t command line option.
      libiberty/
      	* cp-demangle.c (cplus_demangle_builtin_types)
      	(cplus_demangle_type): Add name demangling for char8_t (Du).
      	* cp-demangle.h: Increase D_BUILTIN_TYPE_COUNT to accommodate the
      	new char8_t type.
      
      From-SVN: r267923
      Tom Honermann committed
    • PR target/88638 - FAIL: fsf-nsstring-format-1.s on darwin · 23db6ced
      gcc/c-family/ChangeLog:
      
      	PR target/88638
      	* c-attribs.c (positional_argument): Call valid_format_string_type_p
      	and issue errors if it fails.
      	* c-common.h (valid_format_string_type_p): Declare.
      	* c-format.c (valid_stringptr_type_p): Rename...
      	(valid_format_string_type_p): ...to this and make extern.
      	(handle_format_arg_attribute): Adjust to new name.
      	(check_format_string): Same.
      
      gcc/testsuite/ChangeLog:
      
      	PR target/88638
      	* gcc.dg/format/attr-8.c: New test.
      	* gcc.dg/darwin-cfstring-format-1.c: Adjust diagnostics.
      	* gcc.dg/format/attr-3.c: Same.
      	* obj-c++.dg/fsf-nsstring-format-1.mm: Same.
      	* objc.dg/fsf-nsstring-format-1.m: Same.
      
      gcc/ChangeLog:
      
      	PR target/88638
      	* doc/extend.texi (Darwin Format Checks): Clarify.
      
      From-SVN: r267922
      Martin Sebor committed
    • Fix location of tls_wrapper_fn (PR gcov-profile/88263). · 15f4e33d
      2019-01-14  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/88263
      	* decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION
      	as location of the TLS wrapper.
      2019-01-14  Martin Liska  <mliska@suse.cz>
      
      	PR gcov-profile/88263
      	* g++.dg/gcov/pr88263-2.C: New test.
      
      From-SVN: r267921
      Martin Liska committed
    • invoke.texi (-Wmemset-transposed-args): Fix typos, adjust wording. · 97d41887
      
      gcc/ChangeLog:
      
      	* invoke.texi (-Wmemset-transposed-args): Fix typos, adjust wording.
      
      From-SVN: r267920
      Martin Sebor committed
    • genmatch.c (dt_simplify::gen_1): Change dumping dependent on whether we are in… · 7cc0fa5d
      genmatch.c (dt_simplify::gen_1): Change dumping dependent on whether we are in (simplify ...) or (match ...) context.
      
      2019-01-14  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (dt_simplify::gen_1): Change dumping dependent on
      	whether we are in (simplify ...) or (match ...) context.
      
      From-SVN: r267917
      Richard Biener committed
    • re PR rtl-optimization/88796 (-fstack-protector* kills RTL DSE opportunities) · a49a975f
      	PR rtl-optimization/88796
      	* emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
      	* cfgexpand.c (stack_protect_prologue): Initialize
      	crtl->stack_protect_guard_decl.
      	* function.c (stack_protect_epilogue): Use it instead of calling
      	targetm.stack_protect_guard again.
      	* dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
      	MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
      	crtl->stack_protect_guard_decl.
      	* config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
      	on the returned MEM_EXPR.
      
      	* gcc.target/i386/pr88796.c: New test.
      
      From-SVN: r267916
      Jakub Jelinek committed
    • Undo undesirable part of r267850 2019-01-11 commit. · 7227b597
      From-SVN: r267914
      Jakub Jelinek committed
    • [D] Merge upstream dmd cd2034cd7 · 2b5e01fa
      One fix in the asm statement parser to stop parsing if the end of the
      statement has been reached, and moves all inline asm tests to gdc.dg.
      These being adjusted where necessary to test the GCC style instead.
      
      gcc/testsuite/ChangeLog:
      
      2019-01-14  Iain Buclaw  <ibuclaw@gdcproject.org>
      
      	* gdc.dg/asm1.d: New test.
      	* gdc.dg/asm2.d: New test.
      	* gdc.dg/asm3.d: New test.
      	* gdc.dg/asm4.d: New test.
      	* lib/gdc.exp (gdc_init): Set gcc_error_prefix and gcc_warning_prefix.
      
      From-SVN: r267913
      Iain Buclaw committed
    • re PR libfortran/88776 (Namelist read from stdin: loss of data) · 9c5f8900
      2019-01-13  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR libfortran/88776
      	* io/open.c (newunit): Free format buffer if the unit specified is for
      	stdin, stdout, or stderr.
      
      	* gfortran.dg/namelist_96.f90: New test.
      
      From-SVN: r267910
      Jerry DeLisle committed
    • Daily bump. · bff1a731
      From-SVN: r267909
      GCC Administrator committed
  4. 13 Jan, 2019 1 commit