Commit Graph

176283 Commits

Author SHA1 Message Date
Richard Biener
380a681518 tree-optimization/94965 - fix typo in vec_info * passing
Should have passed vinfo, not loop_vinfo.

2020-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/94965
	* tree-vect-stmts.c (vectorizable_load): Fix typo.
2020-05-06 11:01:37 +02:00
Rainer Orth
f4dff765db doc: Update install.texi for GCC 10 on Solaris
This patch updates install.texi for GCC 10 on Solaris.  It includes some
general cleanup and updates and includes a couple of caveats, some of
them found when testing GCC 10.1.0 RC1 with only the bundled tools.

The reference to TGCware on the binaries page is gone because they only
provide binaries up to Solaris 9.

The note about configuring 64-bit Solaris/SPARC compilers with
--build=sparcv9-sun-solaris2.11 became necessary because upstream
config.guess silently reverted my patch to automatically detect this.  We
already had a bug report about a comparison failure caused by this issue.

Tested with make doc/gccinstall.info and doc/gccinstall.pdf and
inspection of the resulting files.

	* doc/install.texi: Replace Sun with Solaris as appropriate.
	(Tools/packages necessary for building GCC, Perl version between
	5.6.1 and 5.6.24): Remove Solaris 8 reference.
	(Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove
	TGCware reference.
	(Specific, i?86-*-solaris2*): Update version references for
	Solaris 11.3 and later.  Remove gas 2.26 caveat.
	(Specific, *-*-solaris2*): Update version references for
	Solaris 11.3 and later.  Remove boehm-gc reference.
	Document GMP, MPFR caveats on Solaris 11.3.
	(Specific, sparc-sun-solaris2*): Update Solaris 9 references.
	(Specific, sparc64-*-solaris2*): Likewise.
	Document --build requirement.
2020-05-06 10:09:11 +02:00
liuhongt
1e47cb3597 Enable TARGET_TSXLDTRK for GCC support.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET,
	OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros.
	* config.gcc: Add tsxldtrkintrin.h to extra_headers.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	TSXLDTRK.
	* config/i386/i386-builtin.def: Add new builtins.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__TSXLDTRK__.
	* config/i386/i386-options.c (ix86_target_string): Add
	-mtsxldtrk.
	(ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk.
	* config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P):
	New.
	* config/i386/i386.md (define_c_enum "unspec"): Add
	UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK.
	(TSXLDTRK): New define_int_iterator.
	("<tsxldtrk>"): New define_insn.
	* config/i386/i386.opt: Add -mtsxldtrk.
	* config/i386/immintrin.h: Include tsxldtrkintrin.h.
	* config/i386/tsxldtrkintrin.h: New.
	* doc/invoke.texi: Document -mtsxldtrk.

gcc/testsuite/
	* g++.dg/other/i386-2.c: Add -mtsxldtrk.
	* g++.dg/other/i386-3.c: Likewise.
	* gcc.target/i386/sse-12.c: Likewise.
	* gcc.target/i386/sse-13.c: Likewise.
	* gcc.target/i386/sse-14.c: Likewise.
	* gcc.target/i386/sse-22.c: Likewsie.
	* gcc.target/i386/sse-23.c: Likewise.
	* gcc.target/i386/tsxldtrk-1.c: New test.
	* gcc.target/i386/funcspec-56.inc: Add target attribute tests
	for tsxldtrk.
2020-05-06 15:57:59 +08:00
Jakub Jelinek
b4ace720e0 riscv: Fix up riscv_atomic_assign_expand_fenv [PR94950]
Similarly to the fixes on many other targets, riscv needs to use TARGET_EXPR
to avoid having the create_tmp_var_raw temporaries without proper DECL_CONTEXT
and not mentioned in local decls.

2020-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR target/94950
	* config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use
	TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags.
2020-05-06 09:40:33 +02:00
Jakub Jelinek
f14848aea7 combine: Don't replace SET_SRC with REG_EQUAL note content if SET_SRC has side-effects [PR94873]
There were some discussions about whether REG_EQUAL notes are valid on insns with a single
set which contains auto-inc-dec side-effects in the SET_SRC and the majority thinks that
it should be valid.  So, this patch fixes the combiner to punt in that case, because otherwise
the auto-inc-dec side-effects from the SET_SRC are lost.

2020-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/94873
	* combine.c (combine_instructions): Don't optimize using REG_EQUAL
	note if SET_SRC (set) has side-effects.

	* gcc.dg/pr94873.c: New test.
2020-05-06 09:31:19 +02:00
liuhongt
366386c7a9 Enable GCC support for SERIALIZE
2020-03-04  Hongtao Liu  <hongtao.liu@intel.com>
2020-03-04  Wei Xiao  <wei3.xiao@intel.com>

gcc/Changelog:
	* gcc/common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET,
	OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros.
	(ix86_handle_option): Handle -mserialize.
	* gcc/config.gcc (serializeintrin.h): New header file.
	* gcc/config/i386/cpuid.h (bit_SERIALIZE): New bit.
	* gcc/config/i386/driver-i386.c (host_detect_local_cpu): Detect
	-mserialize.
	* gcc/config/i386/i386-builtin.def: Add new builtin.
	* gcc/config/i386/i386-c.c (__SERIALIZE__): New macro.
	* gcc/config/i386/i386-options.c (ix86_target_opts_isa2_opts):
	  Add -mserialize.
	* (ix86_valid_target_attribute_inner_p): Add target attribute
	* for serialize.
	* gcc/config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P):
	  New macros.
	* gcc/config/i386/i386.md (UNSPECV_SERIALIZE): New unspec.
	  (serialize): New define_insn.
	* gcc/config/i386/i386.opt (mserialize): New option
	* gcc/config/i386/immintrin.h: Include serailizeintrin.h.
	* gcc/config/i386/serializeintrin.h: New header file.
	* gcc/doc/invoke.texi: Add documents for -mserialize.

gcc/testsuite/Changelog
	* gcc/testsuite/gcc.target/i386/serialize-1.c: New test.
	* gcc/testsuite/g++.dg/other/i386-2.C: Add -mserialize.
	* gcc/testsuite/g++.dg/other/i386-3.C: Ditto.
	* gcc/testsuite/gcc.target/i386/funcspec-56.inc: Ditto.
	* gcc/testsuite/gcc.target/i386/sse-12.c: Ditto.
	* gcc/testsuite/gcc.target/i386/sse-13.c: Ditto.
	* gcc/testsuite/gcc.target/i386/sse-14.c: Ditto.
	* gcc/testsuite/gcc.target/i386/sse-22.c: Ditto.
	* gcc/testsuite/gcc.target/i386/sse-23.c: Ditto.
2020-05-06 14:44:26 +08:00
Richard Biener
3f969affaf Adjust integer <-> pointer conversion IL checking
The existing check doesn't reflect the actual reason why it exists,
the patch makes us to use POINTERS_EXTEND_UNSIGNED instead which
is specified for ptr_mode and word_mode/Pmode precision.

2020-05-06  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_unary): Adjust integer
	to/from pointer conversion checking.
2020-05-06 08:41:17 +02:00
GCC Administrator
cc80c1e423 Daily bump. 2020-05-06 00:16:15 +00:00
Jason Merrill
e42f342652 c++: CWG2235 partial ordering and non-dependent types
Issue 2235 removed the rule previously added for issues 1391/1847 that had
partial ordering completely ignore function parameters with no deducible
template parameters.

gcc/cp/ChangeLog
2020-05-05  Jason Merrill  <jason@redhat.com>

	CWG 2235
	* pt.c (more_specialized_fn): Do consider parms with no deducible
	template parameters.
2020-05-05 17:40:18 -04:00
Jason Merrill
04b89192ac c++: constexpr and lambda capture [PR90212]
This is the same issue as PR86429, just in potential_constant_expression_1
rather than cxx_eval_constant_expression.  As in that case, when we're
trying to evaluate a constant expression within a lambda, we don't have a
constant closure object to refer to, but we can try to refer directly to the
captured variable.

gcc/cp/ChangeLog
2020-05-05  Jason Merrill  <jason@redhat.com>

	PR c++/90212
	* constexpr.c (potential_constant_expression_1): In a lambda
	function, consider a captured variable directly.
2020-05-05 17:39:31 -04:00
H.J. Lu
d0aed8d5ba matcher-1.m: Change return type to int
my_exception_matcher must return int.  Otherwise, this test fails.

	PR testsuite/84324
	* objc/execute/exceptions/matcher-1.m (my_exception_matcher):
	Change return type to int.
2020-05-05 13:35:50 -07:00
Harald Anlauf
5a26ea7e0f PR fortran/93366 - ICE on invalid, reject invalid use of NULL() as argument
gcc/fortran/ChangeLog:

2020-05-05  Steve Kargl  <kargl@gcc.gnu.org>
	Harald Anlauf  <anlauf@gmx.de>

	PR fortran/93366
	* check.c (gfc_check_associated, invalid_null_arg): Factorize
	check for presence of invalid NULL() argument.
	(gfc_check_kind, gfc_check_merge, gfc_check_shape)
	(gfc_check_sizeof, gfc_check_spread, gfc_check_transfer): Use this
	check for presence of invalid NULL() arguments.

gcc/testsuite/ChangeLog:

2020-05-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/93366
	* gfortran.dg/pr93366.f90: New test.
2020-05-05 22:16:50 +02:00
Nathan Sidwell
1136ba01e1 libitm: Disable diagnostic coloring in tests
Diagnostic coloring makes the log file hard to read when there's a
problem.  Let's do without it.

            * Testsuite/lib/libitm.exp (libitm_init): Add
            -fdiagnostics-color=never to options.
2020-05-05 12:50:54 -07:00
Iain Sandoe
f1656ae923 coroutines: Replace extra checks for co_yield with asserts.
The lowering of co_yield to a promise method call and a co_await
was moved to the initial analysis phase with the intention of
avoiding the need to handle the two cases later.

Before removing the later checks entirely, this patch replaces
them with checking asserts.

gcc/cp/Changelog:

2020-05-05  Iain Sandoe  <iain@sandoe.co.uk>

	* coroutines.cc (transform_await_wrapper): Check that we have
	no unlowered co_yields.
	(captures_temporary): Likewise.
	(register_awaits): Likewise.
2020-05-05 20:27:27 +01:00
Michael Meissner
e5185cc6be Delete file meant for a private branch 2020-05-05 14:08:33 -04:00
Michael Meissner
f5f2a77571 Remove files meant for a private branch 2020-05-05 14:07:46 -04:00
Michael Meissner
35a4fe9dcf Delete file meant for private branch 2020-05-05 14:07:02 -04:00
Michael Meissner
8b9180ae7e Delete file meant for private branch 2020-05-05 14:05:39 -04:00
Michael Meissner
d236b30c5c Remove files meant for private branch 2020-05-05 14:04:59 -04:00
Michael Meissner
ef836167f5 Delete changes meant for a private branch.
2020-05-05  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000-builtin.def: Delete changes meant for a
	private branch.
	* config/rs6000/rs6000-c.c: Likewise.
	* config/rs6000/rs6000-call.c: Likewise.
	* gcc/config/rs6000/rs6000.c: Likewise.

2020-05-05  Michael Meissner  <meissner@linux.ibm.com>

	* gcc.dg/nextafter-2.c: Delete changes meant for a private branch.
	* gcc.target/powerpc/pr70117.c: Likewise.

2020-05-05  Michael Meissner  <meissner@linux.ibm.com>

	* config.host: Delete changes meant for a private branch.
	* config/rs6000/t-float128: Likewise.
	* configure.ac: Likewise.
	* configure: Likewise.
2020-05-05 14:03:30 -04:00
Michael Meissner
3338afa4a3 Patch ieee128-lib-patch010b 2020-05-05 14:03:30 -04:00
Michael Meissner
03831dcc98 New file 2020-05-05 14:03:30 -04:00
Michael Meissner
8e01d9d790 New files 2020-05-05 14:03:29 -04:00
Sebastian Huber
4461384026 RTEMS: Improve GCC specification
Add a start/end file specification if the -qrtems option is present.
Allow targets to customize it.

Support the standard -nodefaultlibs option.

gcc/

	* config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined.
	(RTEMS_ENDFILE_SPEC): Likewise.
	(STARTFILE_SPEC): Update comment.  Add RTEMS_STARTFILE_SPEC.
	(ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC.
	(LIB_SPECS): Support -nodefaultlibs option.
	* config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define.
	(RTEMS_ENDFILE_SPEC): Likewise.
	* config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
	(RTEMS_ENDFILE_SPEC): Likewise.
	* config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise.
	(RTEMS_ENDFILE_SPEC): Likewise.
2020-05-05 19:47:40 +02:00
Dimitar Dimitrov
1ea8de4c8c PRU: Remove TARGET_HARD_REGNO_CALL_PART_CLOBBERED
Per clarification in [1], macro is supposed to check for partial
clobbering of single HW registers. Since PRU declares only 8-bit
HW registers, and ABI does not define individual bit clobbering,
it is safe to remove the implementation.

[1] https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00778.html

gcc/ChangeLog:

2020-05-05  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove.
	(TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2020-05-05 20:42:57 +03:00
Dimitar Dimitrov
931dfb70ab testsuite: pru: Add clobber test
gcc/testsuite/ChangeLog:

2020-05-05  Dimitar Dimitrov  <dimitar@dinux.eu>

	* gcc.target/pru/clobber-sp.c: New test.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2020-05-05 20:42:57 +03:00
Dimitar Dimitrov
09d8b020db PRU: Fix R3.w0 register class
TI has clarified [1] that R3.w0 is caller saved, so allow compiler to
use it. This is safe change because older GCC versions treat R3.w0 as
fixed register and never use it.

[1] https://e2e.ti.com/support/tools/ccs/f/81/t/849993

gcc/ChangeLog:

2020-05-05  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.h: Mark R3.w0 as caller saved.

gcc/testsuite/ChangeLog:

2020-05-05  Dimitar Dimitrov  <dimitar@dinux.eu>

	* gcc.target/pru/lra-framepointer-fragmentation-1.c: Update test to
	take into account additional available registers.
	* gcc.target/pru/lra-framepointer-fragmentation-2.c: Ditto.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2020-05-05 20:42:56 +03:00
Dimitar Dimitrov
f886644bd4 PRU: Simplify machine description
Use the new @insn syntax for simpler gen_* invocation.

gcc/ChangeLog:

2020-05-05  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal
	and gen_doloop_begin_internal.
	(pru_reorg_loop): Use gen_pruloop with mode.
	* config/pru/pru.md: Use new @insn syntax.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2020-05-05 20:42:56 +03:00
Dimitar Dimitrov
3d1ca85778 PRU: Fix comment to avoid fall through warning
gcc/ChangeLog:

2020-05-05  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.c (pru_print_operand): Fix fall through comment.

Signed-off-by: Dimitar Dimitrov <dimitar@dinux.eu>
2020-05-05 20:42:56 +03:00
Michael Meissner
2d7941da28 Patch ieee128-lib-patch009b 2020-05-05 13:39:52 -04:00
Michael Meissner
914ba0448e Patch ieee128-lib-patch008b 2020-05-05 13:38:28 -04:00
Michael Meissner
db23381603 Patch ieee128-lib-patch007b 2020-05-05 13:37:28 -04:00
Michael Meissner
931ab4fd33 Update ChangeLog 2020-05-05 13:36:17 -04:00
Michael Meissner
63f3d98b69 Remove extra newline 2020-05-05 13:35:40 -04:00
Michael Meissner
bee774cecb Patch ieee128-lib-patch006b 2020-05-05 13:35:09 -04:00
Michael Meissner
8f2973cbf7 Patch ieee128-lib-patch005b 2020-05-05 13:33:34 -04:00
Michael Meissner
18c2f7a740 Patch ieee128-lib-patch004b 2020-05-05 13:32:22 -04:00
Michael Meissner
6034b9ca24 Patch ieee128-lib-patch003b 2020-05-05 13:31:03 -04:00
Michael Meissner
9fc1dff119 Patch ieee128-lib-patch002b 2020-05-05 13:30:07 -04:00
Michael Meissner
f1d82734ec Patch ieee128-lib-patch001b 2020-05-05 12:28:48 -04:00
Michael Meissner
438085cc66 setup branch 2020-05-05 12:24:18 -04:00
Uros Bizjak
b1ea0ebd97 i386: Use "clobber (scratch)" in expanders
Use "clobber (scratch:M)" instad of "clobber (match_scratch:M N)" in expanders.

	* config/i386/i386.md (fixuns_trunc<mode>si2): Use
	"clobber (scratch:M)" instad of "clobber (match_scratch:M N)".
	(addqi3_cconly_overflow): Ditto.
	(umulv<mode>4): Ditto.
	(<s>mul<mode>3_highpart): Ditto.
	(tls_global_dynamic_32): Ditto.
	(tls_local_dynamic_base_32): Ditto.
	(atanxf2): Ditto.
	(asinxf2): Ditto.
	(acosxf2): Ditto.
	(logxf2): Ditto.
	(log10xf2): Ditto.
	(log2xf2): Ditto.
	(*adddi_4): Remove "m" constraint from scratch operand.
	(*add<mode>_4): Ditto.
2020-05-05 18:01:06 +02:00
Stefan Schulze Frielinghaus
b776bdca93 c-attribs.c: Fix warning about use of uninitialized variable nunits
In function handle_vector_size_attribute local variable nunits is
supposed to be initialized by function type_valid_for_vector_size.
However, in case ARGS is null the function may return with a non-null
value and leave nunits uninitialized.  This results in warning/error:

gcc/poly-int.h: In function 'tree_node* handle_vector_size_attribute(tree_node**, tree, tree, int, bool*)':
gcc/poly-int.h:330:3: error: 'nunits' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  330 |   ((void) (&(RES).coeffs[0] == (C *) 0), \
      |   ^
gcc/c-family/c-attribs.c:3695:26: note: 'nunits' was declared here
 3695 |   unsigned HOST_WIDE_INT nunits;
      |

Added attribute nonnull for argument args in order to silence warning
and added an assert statement in order to check the invariant candidate.

gcc/c-family/ChangeLog:

2020-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* c-attribs.c (handle_vector_size_attribute): Add attribute
	nonnull for argument args in order to silence warning of
	uninitialized variable usage.  Since this is local to the
	compilation unit and thus cannot be checked at call sides by the
	compiler, added an assert statement in order to verify this.
2020-05-05 17:33:54 +02:00
Nathan Sidwell
733195e367 c++: Avoid inconsistency in lambda fn's this pointer name [pr94807]
* coroutines.cc (morph_fn_to_coro): Just check for
	closure_identifier.
	* pt.c (tsubst_function_decl): Update lambda fn's this_ptr name.
2020-05-05 07:48:35 -07:00
Jakub Jelinek
d44f14ccef csa, postreload: Improve csa after recent cselib changes [PR94516]
This patch addresses a missed optimization caused by the cselib changes.
Already in the past postreload could replace sp = sp + const_int with
sp = regxy if regxy already has the right value, but with the cselib
changes it happens several times more often.  It can result in smaller
code, so it seems undesirable to prevent such optimizations, but
unfortunately it can get into the way of stack adjustment coalescing,
where e.g. if we used to have sp = sp + 32; sp = sp - 8;, previously
we'd turn that into sp = sp + 24;, but now postreload optimizes
into sp = r12; sp = sp - 8; and csa gives up.

The patch just adds a REG_EQUAL note when changing sp = sp + const into
sp = reg, where we remember it was actually a stack adjustment by certain
constant, and the combine-stack-adj changes than make use of those REG_EQUAL
notes, together with LR tracking (csa did enable the note problem, just
didn't simulate each insn) so that we can add the needed clobbers etc.
(taken from the other stack adjustment insn).

2020-05-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/94516
	* postreload.c (reload_cse_simplify): When replacing sp = sp + const
	with sp = reg, add REG_EQUAL note with sp + const.
	* combine-stack-adj.c (try_apply_stack_adjustment): Change return
	type from int to bool.  Add LIVE and OTHER_INSN arguments.  Undo
	postreload sp = sp + const to sp = reg optimization if needed and
	possible.
	(combine_stack_adjustments_for_block): Add LIVE argument.  Handle
	reg = sp insn with sp + const REG_EQUAL note.  Adjust
	try_apply_stack_adjustment caller, call
	df_simulate_initialize_forwards and df_simulate_one_insn_forwards.
	(combine_stack_adjustments): Allocate and free LIVE bitmap,
	adjust combine_stack_adjustments_for_block caller.
2020-05-05 16:34:51 +02:00
Marek Polacek
ef3479afc5 c++: Member template function lookup failure [PR94799]
Whew, this took a while.  We fail to parse "p->template A<T>::a()"
(where p is of type A<T> *) because since r249752 we treat the RHS of the ->
as dependent and avoid a lookup in the enclosing context: since that rev
cp_parser_template_name checks parser->context->object_type too, which
here is unknown_type_node, signalling a type-dependent object:

 7756   if (dependent_p)
 7757     /* Tell cp_parser_lookup_name that there was an object, even though it's
 7758        type-dependent.  */
 7759     parser->context->object_type = unknown_type_node;

with which cp_parser_template_name returns identifier 'A', cp_parser_class_name
then creates a TEMPLATE_ID_EXPR A<T>, but then

23735       decl = make_typename_type (scope, decl, tag_type, tf_error);

in cp_parser_class_name fails because scope is NULL.  Then we return
error_mark_node and parse errors ensue.

I've tried various approaches, e.g. keeping TEMPLATE_ID_EXPR around
instead of calling make_typename_type, which didn't work, whereupon I
realized that since we don't want to perform name lookup if we've seen
the template keyword and the scope is dependent, we can adjust
parser->context->object_type and use the type of the object expression
as the scope, even if it's type-dependent.  This should be in line with
[basic.lookup.classref]p4.  If the postfix expression doesn't have a type,
use typeof to carry its type.  This typeof will be processed in
tsubst/TYPENAME_TYPE.

	PR c++/94799
	* parser.c (cp_parser_postfix_dot_deref_expression): If we have
	a type-dependent object of class type, stash it to
	parser->context->object_type.  If the postfix expression doesn't have
	a type, use typeof.
	(cp_parser_class_name): Consider object scope too.
	(cp_parser_lookup_name): Remove code dealing with the case when
	object_type is unknown_type_node.

	* g++.dg/lookup/this1.C: Adjust dg-error.
	* g++.dg/template/lookup12.C: New test.
	* g++.dg/template/lookup13.C: New test.
	* g++.dg/template/lookup14.C: New test.
	* g++.dg/template/lookup15.C: New test.
2020-05-05 10:19:09 -04:00
Martin Liska
811b7636cb
Remove __gcov_flush.
PR gcov-profile/93623
	* tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
	reality.
	PR gcov-profile/93623
	* Makefile.in: Remove __gcov_flush.
	* gcov.h (__gcov_flush): Remove.
	* libgcov-interface.c (__gcov_flush): Remove.
	(init_mx): Use renamed mutex.
	(__gcov_lock): Likewise.
	(__gcov_unlock): Likewise.
	(__gcov_fork): Likewise.
	(__gcov_flush): Remove.
2020-05-05 16:15:47 +02:00
Martin Liska
c0532db47d
Use __gcov_dump and __gcov_reset in execv and fork context.
PR gcov-profile/93623
	* libgcov-interface.c (__gcov_fork): Do not flush
	and reset only in child process.
	(__gcov_execl): Dump counters only and reset them
	only if exec* fails.
	(__gcov_execlp): Likewise.
	(__gcov_execle): Likewise.
	(__gcov_execv): Likewise.
	(__gcov_execvp): Likewise.
	(__gcov_execve): Likewise.
2020-05-05 16:15:46 +02:00
Martin Liska
d39f7dc8d5
Do locking for __gcov_dump and __gcov_reset as well.
PR gcov-profile/93623
	* Makefile.in: Add _gcov_lock_unlock to LIBGCOV_INTERFACE.
	* libgcov-interface.c (ALIAS_void_fn): Remove.
	(__gcov_lock): New.
	(__gcov_unlock): New.
	(__gcov_flush): Use __gcov_lock and __gcov_unlock.
	(__gcov_reset): Likewise.
	(__gcov_dump): Likewise.
	* libgcov.h (__gcov_lock): New declaration.
	(__gcov_unlock): Likewise.
2020-05-05 16:15:45 +02:00
Martin Liska
2d8a60a63c
optgen: make more sanity checks for enums.
* opt-functions.awk (opt_args_non_empty): New function.
	* opt-read.awk: Use the function for various option arguments.
2020-05-05 16:13:46 +02:00