| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 75814
|
|
|
|
|
|
|
|
|
|
|
|
| |
pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective).
This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-).
This patch also adds Type::isObjCBuiltinType().
This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small.
llvm-svn: 75808
|
|
|
|
|
|
|
| |
Force flag to control whether the case of opening an existing
file is considered an error.
llvm-svn: 75802
|
|
|
|
| |
llvm-svn: 75764
|
|
|
|
| |
llvm-svn: 75761
|
|
|
|
| |
llvm-svn: 75750
|
|
|
|
|
|
| |
follow.
llvm-svn: 75748
|
|
|
|
| |
llvm-svn: 75745
|
|
|
|
| |
llvm-svn: 75740
|
|
|
|
| |
llvm-svn: 75738
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
needs more finesse when handling the invalidation of pointers. Pointers that were invalidated as integers could later cause problems for clients using them as pointers. It is easier for us to model a symbolic value as a pointer rather than modeling a non-symbolic value as a pointer.
This patch causes:
- StoreManager::InvalidateRegion() to not used the casted type of a region if
it would cause a pointer type to be invalidated as a non-pointer type.
- Pushes RegionStore::RetrieveElement() further by handling retrievals from
symbolic arrays that have been invalidated. This uses the new SymbolDerived
construct that was recently introduced.
The result is that the failing test in misc-ps-region-store-x86_64.m now passes.
Both misc-ps-region-store-x86_64.m and misc-ps-region-store-i386.m contain a
test case that motivated this change.
llvm-svn: 75730
|
|
|
|
|
|
|
|
| |
SymbolDerived allows us to model symbolic values that are related to other
symbols via a region hierarchy. For example, SymbolDerived can be used to model
individual values of a symbolic array.
llvm-svn: 75728
|
|
|
|
| |
llvm-svn: 75713
|
|
|
|
|
|
| |
a dependent type in the ctor initializer-list.
llvm-svn: 75712
|
|
|
|
| |
llvm-svn: 75705
|
|
|
|
| |
llvm-svn: 75692
|
|
|
|
|
|
|
|
| |
using -traditional and -traditional-cpp with clang an error because
it's unsupported in clang and causes a significant change in the
semantics of the language.
llvm-svn: 75690
|
|
|
|
| |
llvm-svn: 75684
|
|
|
|
|
|
| |
do this by silently wrapping the region with an ElementRegion. This fixes the failures in misc-ps-region-store.m.
llvm-svn: 75679
|
|
|
|
| |
llvm-svn: 75675
|
|
|
|
| |
llvm-svn: 75672
|
|
|
|
|
|
| |
out of line definition.
llvm-svn: 75668
|
|
|
|
|
|
| |
ctor-initializer AST build.
llvm-svn: 75662
|
|
|
|
| |
llvm-svn: 75651
|
|
|
|
|
|
| |
I don't love the name, however it simplifies the code and is a worthwhile change. If/when we come up with a better name, we can do a search/replace.
llvm-svn: 75650
|
|
|
|
|
|
| |
semantics of order of construction [class.init].
llvm-svn: 75649
|
|
|
|
| |
llvm-svn: 75647
|
|
|
|
| |
llvm-svn: 75641
|
|
|
|
|
|
|
| |
--- Reverse-merging r75614 into '.':
U lib/CodeGen/CGDebugInfo.cpp
llvm-svn: 75639
|
|
|
|
|
| |
Note: One day, it might be useful to consider adding this info to DeclGroup (as the comments in FunctionDecl/VarDecl suggest). For now, I think this works fine. I considered moving this to ValueDecl (a common ancestor of FunctionDecl/VarDecl/FieldDecl), however this would add overhead to EnumConstantDecl (which would burn memory and isn't necessary).
llvm-svn: 75635
|
|
|
|
| |
llvm-svn: 75627
|
|
|
|
|
|
| |
an incremental patch
llvm-svn: 75622
|
|
|
|
| |
llvm-svn: 75614
|
|
|
|
| |
llvm-svn: 75606
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FunctionDecl or VarDecl.
It iterates over all the redeclarations, regardless of the starting point. For example:
1) int f();
2) int f();
3) int f();
if you have the (2) FunctionDecl and call redecls_begin/redecls_end to iterate, you'll get this sequence:
(2)
(1)
(3)
The motivation to introduce this was that, previously, if (3) was a function definition,
and you called getBody() at (2), it would not return it, since getBody() iterated over the previous declarations only,
so it would only check (2) and (1).
llvm-svn: 75604
|
|
|
|
|
|
|
|
|
|
| |
VarDecl::getLatestDeclaration().
For multiple redeclarations they return the last one.
Also, add some non const versions of methods.
llvm-svn: 75603
|
|
|
|
|
|
|
|
| |
VarDecl::getFirstDeclaration().
For multiple redeclarations they return the first one.
llvm-svn: 75602
|
|
|
|
|
|
| |
DeclRefExpr to the location of the operator.
llvm-svn: 75600
|
|
|
|
| |
llvm-svn: 75598
|
|
|
|
|
|
|
|
|
| |
- Declaration context of ParmVarDecls (that we got from the Declarator) was not their containing function.
- C++ out-of-line method definitions didn't get an access specifier.
Both were exposed by a crash when emitting a C++ method to a PCH file (assert at Decl::CheckAccessDeclContext()).
llvm-svn: 75597
|
|
|
|
| |
llvm-svn: 75594
|
|
|
|
| |
llvm-svn: 75593
|
|
|
|
| |
llvm-svn: 75592
|
|
|
|
| |
llvm-svn: 75591
|
|
|
|
| |
llvm-svn: 75590
|
|
|
|
| |
llvm-svn: 75589
|
|
|
|
|
|
|
|
|
| |
- Previously this would crash on recursive types, and it was also incorrectly
stripping off a level of indirection.
- I'm not 100% convinced this is all correct, but it should be a monotonic
improvment.
llvm-svn: 75582
|
|
|
|
|
|
|
|
| |
invalidate the region correctly. It uses the cast-to type to invalidate
the region when available. To avoid invalid cast-to type like 'void*' or 'id',
region store now only records non-generic casts of regions.
llvm-svn: 75580
|
|
|
|
|
|
|
| |
are not explicitly marked as not accepting NULL pointers. This check illustrates
how we need more refactoring in the custom-check logic.
llvm-svn: 75570
|
|
|
|
| |
llvm-svn: 75569
|