aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2020-11-03 08:35:53 -0800
committerNathan Sidwell <nathan@acm.org>2020-11-03 08:49:26 -0800
commit770ec066b8b5d70921dfab9fcd1bbb87abeb0dc5 (patch)
tree6a77dd4e5833dca8b806912e1d0a906b9fbd1129 /gcc/cp/decl.c
parent082a7b239096caf422f7ef138e2729b2730c0d70 (diff)
downloadgcc-770ec066b8b5d70921dfab9fcd1bbb87abeb0dc5.zip
gcc-770ec066b8b5d70921dfab9fcd1bbb87abeb0dc5.tar.gz
gcc-770ec066b8b5d70921dfab9fcd1bbb87abeb0dc5.tar.bz2
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.
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 114e8d0..9428fa0 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -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. */