diff options
author | Anders Carlsson <andersca@mac.com> | 2009-08-25 03:18:48 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-08-25 03:18:48 +0000 |
commit | 9351c173cd538f7f7c28af1494ac7e68b815b0e8 (patch) | |
tree | 1b64e907dd7c4240336cf2be1bfb410b720dcc74 /test/SemaTemplate/default-expr-arguments.cpp | |
parent | ed961f989e7153733d352505f239f0de4e060629 (diff) |
Basic support for default argument expressions for function templates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79972 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaTemplate/default-expr-arguments.cpp')
-rw-r--r-- | test/SemaTemplate/default-expr-arguments.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/SemaTemplate/default-expr-arguments.cpp b/test/SemaTemplate/default-expr-arguments.cpp new file mode 100644 index 0000000000..87532effb5 --- /dev/null +++ b/test/SemaTemplate/default-expr-arguments.cpp @@ -0,0 +1,20 @@ +// RUN: clang-cc -fsyntax-only -verify %s + +struct S { }; + +template<typename T> void f1(T a, T b = 10) { } // expected-error{{cannot initialize 'b' with an rvalue of type 'int'}} + +template<typename T> void f2(T a, T b = T()) { } + +template<typename T> void f3(T a, T b = T() + T()); // expected-error{{invalid operands to binary expression ('struct S' and 'struct S')}} + +void g() { + f1(10); + f1(S()); // expected-note{{in instantiation of default argument for 'f1<struct S>' required here}} + + f2(10); + f2(S()); + + f3(10); + f3(S()); // expected-note{{in instantiation of default argument for 'f3<struct S>' required here}} +} |