diff options
author | Paolo Carlini <paolo@gcc.gnu.org> | 2015-02-13 23:57:10 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2015-02-13 23:57:10 +0000 |
commit | 6e4f01ff4d3224e2f48bcd3ced49bcf12bd83d24 (patch) | |
tree | f2909324ffffb5d02e6bc4849ff10cf4218c8d9f /gcc | |
parent | c7a28c1bc27c8eb9fa223147c081588c7fd8a369 (diff) | |
download | gcc-6e4f01ff4d3224e2f48bcd3ced49bcf12bd83d24.zip gcc-6e4f01ff4d3224e2f48bcd3ced49bcf12bd83d24.tar.gz gcc-6e4f01ff4d3224e2f48bcd3ced49bcf12bd83d24.tar.bz2 |
re PR c++/60894 (Use of redundant struct keyword in function prototype combined with using statement causes compilation error)
/cp
2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60894
* decl.c (lookup_and_check_tag): Use strip_using_decl.
/testsuite
2015-02-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60894
* g++.dg/lookup/using54.C: New.
From-SVN: r220702
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lookup/using54.C | 16 |
4 files changed, 28 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 0738e8b..6d21c28 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2015-02-13 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/60894 + * decl.c (lookup_and_check_tag): Use strip_using_decl. + 2015-02-13 Jason Merrill <jason@redhat.com> PR c++/65054 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index bc481bf..67c5ae7 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -12205,6 +12205,7 @@ lookup_and_check_tag (enum tag_types tag_code, tree name, /* First try ordinary name lookup, ignoring hidden class name injected via friend declaration. */ decl = lookup_name_prefer_type (name, 2); + decl = strip_using_decl (decl); /* If that fails, the name will be placed in the smallest non-class, non-function-prototype scope according to 3.3.1/5. We may already have a hidden name declared as friend in this diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index bb13dc1..f6e5ccc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-02-13 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/60894 + * g++.dg/lookup/using54.C: New. + 2015-02-13 Jeff Law <law@redhat.com> PR bootstrap/65060 @@ -17,7 +22,7 @@ 2015-02-13 Jeff Law <law@redhat.com> PR tree-optimization/64823 - gcc.dg/uninit-20.c: New test. + * gcc.dg/uninit-20.c: New test. PR rtl-optimization/47477 * gcc.dg/tree-ssa/pr47477.c: New test. diff --git a/gcc/testsuite/g++.dg/lookup/using54.C b/gcc/testsuite/g++.dg/lookup/using54.C new file mode 100644 index 0000000..680bdad --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/using54.C @@ -0,0 +1,16 @@ +// PR c++/60894 + +struct B +{ + struct S {}; +}; + +struct D : B +{ + using B::S; + void doIt(struct S&); +}; + +void D::doIt(struct S&) +{ +} |