diff options
Diffstat (limited to 'test/CodeGenCXX/function-template-specialization.cpp')
-rw-r--r-- | test/CodeGenCXX/function-template-specialization.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/CodeGenCXX/function-template-specialization.cpp b/test/CodeGenCXX/function-template-specialization.cpp new file mode 100644 index 0000000..bea3af2 --- /dev/null +++ b/test/CodeGenCXX/function-template-specialization.cpp @@ -0,0 +1,27 @@ +// RUN: clang-cc -emit-llvm %s -o %t && +template<typename T, typename U> +T* next(T* ptr, const U& diff); + +template<typename T, typename U> +T* next(T* ptr, const U& diff) { + return ptr + diff; +} + +void test(int *iptr, float *fptr, int diff) { + // FIXME: should be "_Z4nextIiiEPT_S1_RKT0_" + // RUN: grep "_Z4nextIiiEPiPiRKi" %t && + iptr = next(iptr, diff); + // FIXME: should be "_Z4nextIfiEPT_S1_RKT0_" + // RUN: grep "_Z4nextIfiEPfPfRKi" %t && + fptr = next(fptr, diff); +} + +template<typename T, typename U> +T* next(T* ptr, const U& diff); + +void test2(int *iptr, double *dptr, int diff) { + iptr = next(iptr, diff); + // FIXME: should be "_Z4nextIdiEPT_S1_RKT0_" + // RUN: grep "_Z4nextIdiEPdPdRKi" %t + dptr = next(dptr, diff); +}
\ No newline at end of file |