diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:06:01 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 11:06:01 +0000 |
commit | 486754660bb926339aefcf012a3f848592babb8b (patch) | |
tree | ecdbc446c9876f4f120f701c243373cd3cb43db3 /test/Analysis/plist-diagnostics-template-function.cpp | |
parent | 55e6d896ad333f07bb3b1ba487df214fc268a4ab (diff) |
Notes
Diffstat (limited to 'test/Analysis/plist-diagnostics-template-function.cpp')
-rw-r--r-- | test/Analysis/plist-diagnostics-template-function.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/Analysis/plist-diagnostics-template-function.cpp b/test/Analysis/plist-diagnostics-template-function.cpp new file mode 100644 index 0000000000000..1f44a789cc922 --- /dev/null +++ b/test/Analysis/plist-diagnostics-template-function.cpp @@ -0,0 +1,41 @@ +// RUN: %clang_analyze_cc1 -analyzer-output=plist -o %t.plist -std=c++11 -analyzer-checker=core %s +// RUN: FileCheck --input-file=%t.plist %s + +bool ret(); + +template <class T> +void f(int i) { + if (ret()) + i = i / (i - 5); +} + +template <> +void f<int>(int i) { + if (ret()) + i = i / (i - 5); +} + +template <int N = 0> +void defaultTemplateParameterFunction(int i) { + if (ret()) + int a = 10 / i; +} + +template <typename... Args> +void variadicTemplateFunction(int i) { + if (ret()) + int a = 10 / i; +} + +int main() { + f<int>(5); + f<float>(5); + defaultTemplateParameterFunction<>(0); + variadicTemplateFunction<char, float, double, int *>(0); +} + +// CHECK: <string>Calling 'f<float>'</string> +// CHECK: <string>Calling 'f<int>'</string> +// CHECK: <string>Calling 'defaultTemplateParameterFunction<0>'</string> +// CHECK: <string>Calling 'variadicTemplateFunction<char, float, double, int *>'</string> + |