diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-02 21:37:35 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-02 21:37:35 +0000 |
commit | fd0d54e486cc57cbac351be7b531d8dd059b9add (patch) | |
tree | ba29739d0ecf05b40f1009692a1b470d1790c5c4 /gcc/testsuite/g++.dg/lookup | |
parent | c2f54bdd8374481f98bc0d25c1b16efd82043ee4 (diff) | |
download | gcc-fd0d54e486cc57cbac351be7b531d8dd059b9add.tar.gz |
PR c++/33516
* parser.c (cp_parser_nested_name_specifier_opt): Use
TYPE_MAIN_VARIANT (new_scope) as scope if new_scope is an incomplete
typedef of currently open class.
* g++.dg/lookup/typedef1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129862 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.dg/lookup')
-rw-r--r-- | gcc/testsuite/g++.dg/lookup/typedef1.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/lookup/typedef1.C b/gcc/testsuite/g++.dg/lookup/typedef1.C new file mode 100644 index 00000000000..f712fc25aa5 --- /dev/null +++ b/gcc/testsuite/g++.dg/lookup/typedef1.C @@ -0,0 +1,32 @@ +// PR c++/33516 +// { dg-do compile } + +struct S1; +typedef S1 T1; +struct S1 { + typedef int U; + T1::U i; +}; +struct S2; +typedef S2 T2; +struct S2 { + typedef int U; +}; +T2::U j; +struct S3; +typedef S3 T3; +struct S3 { + typedef int U; + S3::U i; +}; + +void +foo () +{ + S1 s1; + S2 s2; + S3 s3; + s1.i = 6; + j = 7; + s3.i = 8; +} |