]> granicus.if.org Git - clang/commit
[analyzer] For now, don't inline C++ standard library functions.
authorJordan Rose <jordan_rose@apple.com>
Mon, 10 Sep 2012 21:27:35 +0000 (21:27 +0000)
committerJordan Rose <jordan_rose@apple.com>
Mon, 10 Sep 2012 21:27:35 +0000 (21:27 +0000)
commit81fb50e8b120fc95dc0245b4112972d4d7cca3b5
tree894ad7f7b82fe1b0cc4a003a5d0c9650beb38a98
parent1ad23d62007162df82b58bca31b4aa277a5f6586
[analyzer] For now, don't inline C++ standard library functions.

This is a (heavy-handed) solution to PR13724 -- until we know we can do
a good job inlining the STL, it's best to be consistent and not generate
more false positives than we did before. We can selectively whitelist
certain parts of the 'std' namespace that are known to be safe.

This is controlled by analyzer config option 'c++-stdlib-inlining', which
can be set to "true" or "false".

This commit also adds control for whether or not to inline any templated
functions (member or non-member), under the config option
'c++-template-inlining'. This option is currently on by default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163548 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
lib/StaticAnalyzer/Core/AnalyzerOptions.cpp
lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
test/Analysis/inlining/stl.cpp [new file with mode: 0644]
test/Analysis/system-header-simulator-cxx.h [new file with mode: 0644]
test/Analysis/temp-obj-dtors-cfg-output.cpp
test/Analysis/templates.cpp