llvm-project/clang/test
Ted Kremenek b5670fd555 MemRegion:
- Overhauled the notion of "types" for TypedRegions.  We now distinguish between the "lvalue" of a region (via getLValueRegion()) and the "rvalue" of a region (va getRValueRegion()).  Since a region represents a chunk of memory it has both, but we were conflating these concepts in some cases, leading to some insidious bugs.
- Removed AnonPointeeType, partially because it is unused and because it doesn't have a clear notion of lvalue vs rvalue type.  We can add it back once there is a need for it and we can resolve its role with these concepts.

StoreManager:
- Overhauled StoreManager::CastRegion.  It expects an *lvalue* type for a region.  This is actually what motivated the overhaul to the MemRegion type mechanism.  It also no longer returns an SVal; we can just return a MemRegion*.
- BasicStoreManager::CastRegion now overlays an "AnonTypedRegion" for pointer-pointer casts.  This matches with the MemRegion changes.
- Similar changes to RegionStore, except I've added a bunch of FIXMEs where it wasn't 100% clear where we should use TypedRegion::getRValueRegion() or TypedRegion::getLValueRegion().

AuditCFNumberCreate check:
- Now blasts through AnonTypedRegions that may layer the original memory region, thus checking if the actually memory block is of the appropriate type.  This change was needed to work with the changes to StoreManager::CastRegion.

GRExprEngine::VisitCast:
- Conform to the new interface of StoreManager::CastRegion.

Tests:
- None of the analysis tests fail now for using the "basic store".
- Disabled the tests 'array-struct.c' and 'rdar-6442306-1.m' pending further testing and bug fixing.

llvm-svn: 60995
2008-12-13 21:49:13 +00:00
..
Analysis MemRegion: 2008-12-13 21:49:13 +00:00
CodeGen stdlib.h is the wrong header for printf, and introduces test-breaking definitions of inlines on Linux 2008-12-13 15:31:28 +00:00
CodeGenObjC Patch to allow a getter call using property dot-syntax notation. 2008-12-10 00:21:50 +00:00
Coverage Patch to diagnose a variety of misuse of property 2008-12-06 01:12:43 +00:00
Driver Change -verify mode to find the "expected-error" and "expected-warning" strings 2008-11-21 01:18:36 +00:00
Lexer rdar://6060752 - don't warn about trigraphs in bcpl-style comments 2008-12-12 07:34:39 +00:00
Misc fix bogus run line. 2008-08-18 19:54:48 +00:00
Parser fix a buggy fall through that caused a crash-on-invalid. rdar://6248081 2008-12-12 19:20:14 +00:00
Preprocessor Add test case for __ASSEMBLER__ definition. 2008-12-01 19:23:47 +00:00
Rewriter Fix <rdar://problem/6429113> clang ObjC rewriter: crash rewriting file with Blocks and properties 2008-12-09 12:56:34 +00:00
Sema Implement the final (hopefully) wrinkle to i-c-e + builtin_constant_p 2008-12-12 18:00:51 +00:00
SemaCXX Enable out-of-line definitions of C++ constructors and destructors 2008-12-12 08:25:50 +00:00
SemaObjC The "real" fix for <rdar://problem/6424347> clang on xcode: Assertion failed: (0 && "unexpected type"), function mergeTypes, 2008-12-10 22:14:21 +00:00
SemaObjCXX Add implicit conversions for Objective-C qualified ids, e.g., 2008-11-27 01:19:21 +00:00
Serialization Added "complex.c" (a copy of test/Codegen/complex.) to the serialization 2007-11-29 19:05:51 +00:00
Makefile Add test case for __ASSEMBLER__ definition. 2008-12-01 19:23:47 +00:00
TestRunner.sh Test commit. 2008-10-15 00:26:06 +00:00