summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/default2.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-08-22 15:43:49 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-08-22 15:43:49 +0000
commit3d0f51d7038804253e8759bfb3cf82e63f0b5734 (patch)
tree5c3b78613ef20434c9a904c1ee77927ab343bfa8 /clang/test/SemaCXX/default2.cpp
parent857fcc2f8ee0f6d0e43d3e14b382684c1466e188 (diff)
downloadbcm5719-llvm-3d0f51d7038804253e8759bfb3cf82e63f0b5734.tar.gz
bcm5719-llvm-3d0f51d7038804253e8759bfb3cf82e63f0b5734.zip
Move the rest of the Sema C++ tests into the SemaCXX test directory.
llvm-svn: 55178
Diffstat (limited to 'clang/test/SemaCXX/default2.cpp')
-rw-r--r--clang/test/SemaCXX/default2.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/default2.cpp b/clang/test/SemaCXX/default2.cpp
new file mode 100644
index 00000000000..d3e999c34c6
--- /dev/null
+++ b/clang/test/SemaCXX/default2.cpp
@@ -0,0 +1,38 @@
+// RUN: clang -fsyntax-only -verify %s
+void f(int i, int j, int k = 3);
+void f(int i, int j, int k);
+void f(int i, int j = 2, int k);
+void f(int i, int j, int k);
+void f(int i = 1, int j, int k);
+void f(int i, int j, int k);
+
+void i()
+{
+ f();
+ f(0);
+ f(0, 1);
+ f(0, 1, 2);
+}
+
+
+int f1(int i, int i, int j) { // expected-error {{redefinition of parameter 'i'}}
+ i = 17;
+ return j;
+}
+
+int x;
+void g(int x, int y = x); // expected-error {{default argument references parameter 'x'}}
+
+void h()
+{
+ int i;
+ extern void h2(int x = sizeof(i)); // expected-error {{default argument references local variable 'i' of enclosing function}}
+}
+
+void g2(int x, int y, int z = x + y); // expected-error {{default argument references parameter 'x'}} expected-error {{default argument references parameter 'y'}}
+
+void nondecl(int (*f)(int x = 5)) // {expected-error {{default arguments can only be specified}}}
+{
+ void (*f2)(int = 17) // {expected-error {{default arguments can only be specified}}}
+ = (void (*)(int = 42))f; // {expected-error {{default arguments can only be specified}}}
+}
OpenPOWER on IntegriCloud