Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
AnalysisConsumer: use canonical decl for both lookup and store of
visited decls. Due to redeclarations, the function may have different declarations used in CallExpr and in the definition. However, we need to use a unique declaration for both store and lookup in VisitedCallees. This patch fixes issues with analysis in topological order. A simple test is included. Patch by Alex Sidorin! Differential Revision: http://reviews.llvm.org/D15410 llvm-svn: 257318
- Loading branch information
Yury Gribov
committed
Jan 11, 2016
1 parent
7ceec0b
commit 054873b
Showing
2 changed files
with
20 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
// RUN: %clang_cc1 -analyze -analyzer-checker=core.builtin.NoReturnFunctions -analyzer-display-progress %s 2>&1 | FileCheck %s | ||
|
||
// Do not analyze test1() again because it was inlined | ||
void test1(); | ||
|
||
void test2() { | ||
test1(); | ||
} | ||
|
||
void test1() { | ||
} | ||
|
||
// CHECK: analysis-order.c test2 | ||
// CHECK-NEXT: analysis-order.c test1 | ||
// CHECK-NEXT: analysis-order.c test2 |