diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-22 15:43:49 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-22 15:43:49 +0000 |
commit | 3d0f51d7038804253e8759bfb3cf82e63f0b5734 (patch) | |
tree | 5c3b78613ef20434c9a904c1ee77927ab343bfa8 /clang/test/SemaCXX/default2.cpp | |
parent | 857fcc2f8ee0f6d0e43d3e14b382684c1466e188 (diff) | |
download | bcm5719-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.cpp | 38 |
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}}} +} |