diff --git a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C index 0a9612fbd0ee928f260fe22c74e02e5e8c80cd20..7fce9d811f573cce217984bde0e623619ad48b11 100644 --- a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C +++ b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.C @@ -4,6 +4,7 @@ .rawInput 1 extern int __my_i; template<typename T> T TemplatedF(T t); +template<> double TemplatedF(double); // forward declare TemplatedF int OverloadedF(int i); float OverloadedF(float f){ return f + 100.111f;} double OverloadedF(double d){ return d + 10.11f; }; @@ -15,6 +16,8 @@ namespace test { int y = 0; } .compareState "testSubsequentDecls" // CHECK-NOT: Differences +TemplatedF((int)2) // expected-diagnostics{{C++ requires a type specifier for all declarations}} expected-diagnostics{{expected ';' after top level declarator}} + .rawInput 1 template<> int TemplatedF(int i) { return i + 100; } int OverloadedF(int i) { return i + 100;} @@ -27,4 +30,6 @@ OverloadedF(__my_i) TemplatedF(__my_i) // CHECK: (int) 110 +TemplatedF((double)3.14) +// CHECK: use of undefined symbol '_Z10TemplatedFIdET_S0_' .q diff --git a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h index b3b68dc6470688087be661ce51a24acd7311114c..1a2b51822ff941a1045a3ee3d43c016bec0caf7e 100644 --- a/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h +++ b/interpreter/cling/test/ErrorRecovery/SubsequentDecls.h @@ -3,6 +3,7 @@ // Template specializations template<> int TemplatedF(int t){return t + 10;} +template<> double TemplatedF(double t){return t + 3.14;} // Aliases typedef struct A AStruct;