diff options
author | Anders Carlsson <andersca@mac.com> | 2009-06-12 16:51:40 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-06-12 16:51:40 +0000 |
commit | 84613c4eba083d2d5e40104734ad3e784427a292 (patch) | |
tree | 7717b0a24c7194feeaa97d121244b60baaebce2a /clang/test/SemaCXX/default2.cpp | |
parent | e3a018d707d40ba380f389216110f57d47462d71 (diff) | |
download | bcm5719-llvm-84613c4eba083d2d5e40104734ad3e784427a292.tar.gz bcm5719-llvm-84613c4eba083d2d5e40104734ad3e784427a292.zip |
It's an error to use a function declared in a class definition as a default argument before the function has been declared.
llvm-svn: 73234
Diffstat (limited to 'clang/test/SemaCXX/default2.cpp')
-rw-r--r-- | clang/test/SemaCXX/default2.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/default2.cpp b/clang/test/SemaCXX/default2.cpp index f99e45415dc..edbd6b3e206 100644 --- a/clang/test/SemaCXX/default2.cpp +++ b/clang/test/SemaCXX/default2.cpp @@ -115,9 +115,15 @@ void test_Z(const Z& z) { } struct ZZ { - void f(ZZ z = g()); // expected-error{{no matching constructor for initialization}} - static ZZ g(int = 17); + void f(ZZ z = g()); // expected-error{{no matching constructor for initialization}} + ZZ(ZZ&, int = 17); // expected-note{{candidate function}} }; + +// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#325 +class C2 { + static void g(int = f()); // expected-error{{use of default argument to function 'f' that is declared later in class 'C2'}} + static int f(int = 10); // expected-note{{default argument declared here}} +}; |