summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/instantiate-expr-3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaTemplate/instantiate-expr-3.cpp')
-rw-r--r--clang/test/SemaTemplate/instantiate-expr-3.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-expr-3.cpp b/clang/test/SemaTemplate/instantiate-expr-3.cpp
index 892f649ef7a..7f54c5de3c3 100644
--- a/clang/test/SemaTemplate/instantiate-expr-3.cpp
+++ b/clang/test/SemaTemplate/instantiate-expr-3.cpp
@@ -1,5 +1,8 @@
// RUN: clang-cc -fsyntax-only -verify %s
+// ---------------------------------------------------------------------
+// Imaginary literals
+// ---------------------------------------------------------------------
template<typename T>
struct ImaginaryLiteral0 {
void f(T &x) {
@@ -10,6 +13,9 @@ struct ImaginaryLiteral0 {
template struct ImaginaryLiteral0<_Complex float>;
template struct ImaginaryLiteral0<int*>; // expected-note{{instantiation}}
+// ---------------------------------------------------------------------
+// Compound assignment operator
+// ---------------------------------------------------------------------
namespace N1 {
struct X { };
@@ -38,3 +44,15 @@ template struct N2::PlusEquals0<N1::X, long, long&>;
template struct N2::PlusEquals0<N3::Y, long, short&>;
template struct N2::PlusEquals0<int, int, int&>;
template struct N2::PlusEquals0<N3::Y, int, short&>; // expected-note{{instantiation}}
+
+// ---------------------------------------------------------------------
+// Conditional operator
+// ---------------------------------------------------------------------
+template<typename T, typename U, typename Result>
+struct Conditional0 {
+ void f(T t, U u) {
+ Result result = t? : u;
+ }
+};
+
+template struct Conditional0<int, int, int>;
OpenPOWER on IntegriCloud