c++: Make extern-C mismatch an error

duplicate_decls was being lenient about extern-c mismatches, allowing
you to have two declarations in the symbol table after emitting an
error.  This resulted in duplicate error messages in modules, when we
find the same problem multiple times.  Let's just not let that happen.

	gcc/cp/
	* decl.c (duplicate_decls): Return error_mark_node fo extern-c
	mismatch.
This commit is contained in:
Nathan Sidwell 2020-11-03 08:35:53 -08:00
parent 082a7b2390
commit 770ec066b8

View file

@ -1776,7 +1776,7 @@ duplicate_decls (tree newdecl, tree olddecl, bool hiding, bool was_hidden)
newdecl);
inform (olddecl_loc,
"previous declaration %q#D", olddecl);
return NULL_TREE;
return error_mark_node;
}
/* For function versions, params and types match, but they
are not ambiguous. */