1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T, typename U> 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoT* next(T* ptr, const U& diff); 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T, typename U> 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoT* next(T* ptr, const U& diff) { 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return ptr + diff; 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid test(int *iptr, float *fptr, int diff) { 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // CHECK: _Z4nextIiiEPT_S1_RKT0_ 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao iptr = next(iptr, diff); 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // CHECK: _Z4nextIfiEPT_S1_RKT0_ 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao fptr = next(fptr, diff); 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotemplate<typename T, typename U> 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoT* next(T* ptr, const U& diff); 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid test2(int *iptr, double *dptr, int diff) { 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao iptr = next(iptr, diff); 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao // CHECK: _Z4nextIdiEPT_S1_RKT0_ 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao dptr = next(dptr, diff); 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 27