PR c++/85580 - extern "C" and local variables
* name-lookup.c (check_extern_c_conflict): Ignore local decls. From-SVN: r259793
This commit is contained in:
parent
879bdafad2
commit
38dff92114
3 changed files with 29 additions and 0 deletions
|
@ -1,5 +1,8 @@
|
|||
2018-04-30 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/85580 - extern "C" and local variables
|
||||
* name-lookup.c (check_extern_c_conflict): Ignore local decls.
|
||||
|
||||
PR c++/84701 - unsigned typeof.
|
||||
* decl.c (grokdeclarator): Overhaul diagnostics for invalid use
|
||||
of long/short/signed/unsigned.
|
||||
|
|
|
@ -2527,6 +2527,10 @@ check_extern_c_conflict (tree decl)
|
|||
if (DECL_ARTIFICIAL (decl) || DECL_IN_SYSTEM_HEADER (decl))
|
||||
return;
|
||||
|
||||
/* This only applies to decls at namespace scope. */
|
||||
if (!DECL_NAMESPACE_SCOPE_P (decl))
|
||||
return;
|
||||
|
||||
if (!extern_c_decls)
|
||||
extern_c_decls = hash_table<named_decl_hash>::create_ggc (127);
|
||||
|
||||
|
|
22
gcc/testsuite/g++.dg/parse/extern-C-2.C
Normal file
22
gcc/testsuite/g++.dg/parse/extern-C-2.C
Normal file
|
@ -0,0 +1,22 @@
|
|||
// PR c++/85580
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
void f1()
|
||||
{
|
||||
union some_type{
|
||||
char a[2];
|
||||
int b;
|
||||
} variable;
|
||||
}
|
||||
|
||||
void f2()
|
||||
{
|
||||
union some_type{
|
||||
char a[2];
|
||||
int b;
|
||||
} variable;
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue