diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/parse/non-dependent2.C')
-rw-r--r-- | gcc/testsuite/g++.dg/parse/non-dependent2.C | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/parse/non-dependent2.C b/gcc/testsuite/g++.dg/parse/non-dependent2.C new file mode 100644 index 000000000..4df2da7fa --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/non-dependent2.C @@ -0,0 +1,37 @@ +// { dg-do compile } + +// Copyright (C) 2003 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 16 Jul 2003 <nathan@codesourcery.com> + +// A non-dependent field_decl can bind at parse time. + +template <class T> +struct Foo { + int j; // we never see this one. + int k; // { dg-error "Foo" "" } + +}; + +struct Baz +{ + int j; + int k; // { dg-error "candidates" "" } + +}; + +template <class T> +struct Bar : public Foo<T>, Baz { + + int baz () { return j; } // binds to Baz::j + int foo () { return this->k; } // { dg-error "request for member" "" } +}; + +int main() +{ + Bar<int> bar; + + bar.baz (); + bar.foo (); // { dg-message "instantiated" "" } + + return 0; +} |