diff options
| author | Jordan Rose <jordan_rose@apple.com> | 2014-09-09 21:42:16 +0000 |
|---|---|---|
| committer | Jordan Rose <jordan_rose@apple.com> | 2014-09-09 21:42:16 +0000 |
| commit | 21933ccdd759c852dc56e1c8a945d3e3744bc53e (patch) | |
| tree | 6507d844044f69da2a8ed8fc4fb49fda8c4f84b9 /clang/test/Analysis/builtin-functions.cpp | |
| parent | 39de3110712cb4547a835777310dbead46c1a002 (diff) | |
| download | llvm-21933ccdd759c852dc56e1c8a945d3e3744bc53e.zip llvm-21933ccdd759c852dc56e1c8a945d3e3744bc53e.tar.gz llvm-21933ccdd759c852dc56e1c8a945d3e3744bc53e.tar.bz2 | |
Teach the analyzer that __builtin_assume_aligned returns its first argument.
Patch by Daniel Fahlgren!
llvm-svn: 217461
Diffstat (limited to 'clang/test/Analysis/builtin-functions.cpp')
| -rw-r--r-- | clang/test/Analysis/builtin-functions.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/clang/test/Analysis/builtin-functions.cpp b/clang/test/Analysis/builtin-functions.cpp index 72d5ad2..d3afab5b 100644 --- a/clang/test/Analysis/builtin-functions.cpp +++ b/clang/test/Analysis/builtin-functions.cpp @@ -22,3 +22,31 @@ void testSize() { clang_analyzer_eval(i == 0); // expected-warning{{TRUE}} } + +void test_assume_aligned_1(char *p) { + char *q; + + q = (char*) __builtin_assume_aligned(p, 16); + clang_analyzer_eval(p == q); // expected-warning{{TRUE}} +} + +void test_assume_aligned_2(char *p) { + char *q; + + q = (char*) __builtin_assume_aligned(p, 16, 8); + clang_analyzer_eval(p == q); // expected-warning{{TRUE}} +} + +void test_assume_aligned_3(char *p) { + void *q; + + q = __builtin_assume_aligned(p, 16, 8); + clang_analyzer_eval(p == q); // expected-warning{{TRUE}} +} + +void test_assume_aligned_4(char *p) { + char *q; + + q = (char*) __builtin_assume_aligned(p + 1, 16); + clang_analyzer_eval(p == q); // expected-warning{{FALSE}} +} |
