42 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-output=plist -o %t.plist -std=c++11 -analyzer-checker=core %s2// RUN: FileCheck --input-file=%t.plist %s3 4bool ret();5 6template <class T>7void f(int i) {8 if (ret())9 i = i / (i - 5);10}11 12template <>13void f<int>(int i) {14 if (ret())15 i = i / (i - 5);16}17 18template <int N = 0>19void defaultTemplateParameterFunction(int i) {20 if (ret())21 int a = 10 / i;22}23 24template <typename... Args>25void variadicTemplateFunction(int i) {26 if (ret())27 int a = 10 / i;28}29 30int main() {31 f<int>(5);32 f<float>(5);33 defaultTemplateParameterFunction<>(0);34 variadicTemplateFunction<char, float, double, int *>(0);35}36 37// CHECK: <string>Calling 'f<float>'</string>38// CHECK: <string>Calling 'f<int>'</string>39// CHECK: <string>Calling 'defaultTemplateParameterFunction<0>'</string>40// CHECK: <string>Calling 'variadicTemplateFunction<char, float, double, int *>'</string>41 42