]> granicus.if.org Git - clang/commitdiff
added type dependent testcase
authorGabor Greif <ggreif@gmail.com>
Wed, 18 Mar 2009 20:26:44 +0000 (20:26 +0000)
committerGabor Greif <ggreif@gmail.com>
Wed, 18 Mar 2009 20:26:44 +0000 (20:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67230 91177308-0d34-0410-b5e6-96231b3b80d8

test/SemaTemplate/instantiate-expr-2.cpp

index 7cfaa9c8ee431dfa19833444f1ff6dad9dc40c3c..b2c43ee76e0e465f3b30b947e0d5120d18d0e473 100644 (file)
@@ -84,9 +84,9 @@ namespace N5 {
 */
 
 namespace N6 {
+  // non-typedependent
   template<int I>
-  struct Lookup {
-  };
+  struct Lookup {};
 
   template<bool B, typename T, typename E>
   struct Cond {
@@ -103,3 +103,20 @@ namespace N6 {
 }
 
 
+namespace N7 {
+  // type dependent
+  template<int I>
+  struct Lookup {};
+
+  template<bool B, typename T, typename E>
+  struct Cond {
+    T foo() { return B ? T() : E(); }
+    typedef Lookup<sizeof(B ? T() : E())> Type;
+  };
+
+  //Cond<true, int*, double> C; // Errors
+  //int V(C.foo()); // Errors
+  //typedef Cond<true, int*, double>::Type Type; // Errors + CRASHES!
+  typedef Cond<true, int, double>::Type Type;
+}
+