llvm-project/clang/lib
Artem Dergachev f74ef4b1e6 [analyzer] Fix invalidation on C++ const methods with arrow syntax.
Conservative evaluation of a C++ method call would invalidate the object,
as long as the method is not const or the object has mutable fields.

When checking for mutable fields, we need to scan the type of the object on
which the method is called, which may be more specific than the type of the
object on which the method is defined, hence we look up the type from the
this-argument expression.

If arrow syntax or implicit-this syntax is used, this-argument expression
has pointer type, not record type, and lookup accidentally failed for that
reason. Obtain object type correctly.

Differential Revision: https://reviews.llvm.org/D48460

llvm-svn: 335555
2018-06-25 23:43:45 +00:00
..
ARCMigrate Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
AST Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
ASTMatchers [ASTMatchers] Introduce a blockDecl matcher for matching block declarations 2018-05-16 22:47:03 +00:00
Analysis [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin 2018-06-22 21:54:40 +00:00
Basic Use Triple::isMIPS() instead of enumerating all Triples. NFC 2018-06-25 16:49:52 +00:00
CodeGen [WebAssembly] Add no-prototype attribute to prototype-less C functions 2018-06-25 18:47:32 +00:00
CrossTU [CrossTU] Fix handling of Cross Translation Unit directory path 2017-10-27 12:53:37 +00:00
Driver [MachineOutliner] NFC - simplify -moutline/-mno-outline logic 2018-06-25 23:20:18 +00:00
Edit Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
Format [clang-format] Add a default format style that can be used by users of `getStyle` 2018-06-25 16:29:19 +00:00
Frontend [clang-cl] Don't emit dllexport inline functions etc. from pch files (PR37801) 2018-06-25 13:23:49 +00:00
FrontendTool Add a new driver mode to dump compiler feature and extension options. 2018-05-31 13:57:09 +00:00
Headers [X86] Correct the inline assembly implementations of __movsb/w/d/q and __stosw/d/q to mark registers/memory as modified 2018-06-21 18:56:30 +00:00
Index [Fixed Point Arithmetic] Addition of the remaining fixed point types and their saturated equivalents 2018-06-14 14:53:51 +00:00
Lex Warning for framework include violation from Headers to PrivateHeaders 2018-06-25 22:24:17 +00:00
Parse Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
Rewrite Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
Sema Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
Serialization Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
StaticAnalyzer [analyzer] Fix invalidation on C++ const methods with arrow syntax. 2018-06-25 23:43:45 +00:00
Tooling Reland "Move #include manipulation code to new lib/Tooling/Inclusions." 2018-06-04 09:04:12 +00:00
CMakeLists.txt Add Cross Translation Unit support library 2017-09-22 11:11:01 +00:00