summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/default2.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-06-12 16:51:40 +0000
committerAnders Carlsson <andersca@mac.com>2009-06-12 16:51:40 +0000
commit84613c4eba083d2d5e40104734ad3e784427a292 (patch)
tree7717b0a24c7194feeaa97d121244b60baaebce2a /clang/test/SemaCXX/default2.cpp
parente3a018d707d40ba380f389216110f57d47462d71 (diff)
downloadbcm5719-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.cpp10
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}}
+};
OpenPOWER on IntegriCloud