]> granicus.if.org Git - clang/commit
[analyzer] Look through SubstNonTypeTemplateParmExprs.
authorJordan Rose <jordan_rose@apple.com>
Fri, 27 Jul 2012 01:15:02 +0000 (01:15 +0000)
committerJordan Rose <jordan_rose@apple.com>
Fri, 27 Jul 2012 01:15:02 +0000 (01:15 +0000)
commit69a0e5021c5c49a34aa25cd89b1e613a52097e65
treeb829e37d1c2eda34c0a8fdb9dfb8b2d27339bb22
parent979f098cfa808cc9236b39658cc3757a39dfa459
[analyzer] Look through SubstNonTypeTemplateParmExprs.

We were treating this like a CXXDefaultArgExpr, but
SubstNonTypeTemplateParmExpr actually appears when a template is
instantiated, i.e. we have all the information necessary to evaluate it.
This allows us to inline functions like llvm::array_lengthof.

<rdar://problem/11949235>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160846 91177308-0d34-0410-b5e6-96231b3b80d8
lib/StaticAnalyzer/Core/Environment.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
test/Analysis/templates.cpp