llvm-project/clang/lib
Jordan Rose c9176072e6 [analyzer] Add a CFG node for the allocator call in a C++ 'new' expression.
In an expression like "new (a, b) Foo(x, y)", two things happen:
- Memory is allocated by calling a function named 'operator new'.
- The memory is initialized using the constructor for 'Foo'.

Currently the analyzer only models the second event, though it has special
cases for both the default and placement forms of operator new. This patch
is the first step towards properly modeling both events: it changes the CFG
so that the above expression now generates the following elements.

1. a
2. b
3. (CFGNewAllocator)
4. x
5. y
6. Foo::Foo

The analyzer currently ignores the CFGNewAllocator element, but the next
step is to treat that as a call like any other.

The CFGNewAllocator element is not added to the CFG for analysis-based
warnings, since none of them take advantage of it yet.

llvm-svn: 199123
2014-01-13 17:59:19 +00:00
..
ARCMigrate Use the simpler version of llvm::sys::fs::remove when possible. 2014-01-10 21:32:14 +00:00
AST Delete inaccurate doc comment - isVariadic is long gone 2014-01-12 15:18:15 +00:00
ASTMatchers Sort all the #include lines with LLVM's utils/sort_includes.py which 2014-01-07 11:51:46 +00:00
Analysis [analyzer] Add a CFG node for the allocator call in a C++ 'new' expression. 2014-01-13 17:59:19 +00:00
Basic Use 'w' instead of 'c' to represent the win32 mangling. 2014-01-10 13:42:17 +00:00
CodeGen [cleanup] Update the include of Dominators.h to reflect its move to the 2014-01-13 09:26:48 +00:00
Driver Rename target i386-linux-android to i686-linux-android 2014-01-13 03:49:38 +00:00
Edit Add front-end infrastructure now address space casts are in LLVM IR. 2013-12-11 13:39:46 +00:00
Format clang-format: Fix corner case with comment in ctor initializer. 2014-01-13 14:10:04 +00:00
Frontend Use the simpler version of llvm::sys::fs::remove when possible. 2014-01-10 21:32:14 +00:00
FrontendTool Bury leaked pointers in a global array to silence a leak detector in --disable-free mode 2013-12-27 08:11:08 +00:00
Headers [CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DIR}/${BUILD_MODE}/(bin|lib) 2013-12-30 06:48:30 +00:00
Index Sort all the #include lines with LLVM's utils/sort_includes.py which 2014-01-07 11:51:46 +00:00
Lex __has_attribute now understands target-specific attributes. So when you ask whether an ARM target has the "interrupt" attribute, it will return true for ARM and MSP430 targets, and false for others. 2014-01-09 22:57:44 +00:00
Parse Add a new attribute 'enable_if' which can be used to control overload resolution based on the values of the function arguments at the call site. 2014-01-11 02:50:57 +00:00
Rewrite Use the simpler version of llvm::sys::fs::remove when possible. 2014-01-10 21:32:14 +00:00
Sema [analyzer] Add a CFG node for the allocator call in a C++ 'new' expression. 2014-01-13 17:59:19 +00:00
Serialization Use the simpler version of llvm::sys::fs::remove when possible. 2014-01-10 21:32:14 +00:00
StaticAnalyzer [analyzer] Add a CFG node for the allocator call in a C++ 'new' expression. 2014-01-13 17:59:19 +00:00
Tooling Sort all the #include lines with LLVM's utils/sort_includes.py which 2014-01-07 11:51:46 +00:00
CMakeLists.txt Fix dependencies now that the ARC migrator depends on the static analyzer. 2013-08-22 15:50:02 +00:00
Makefile Fix dependencies now that the ARC migrator depends on the static analyzer. 2013-08-22 15:50:02 +00:00