| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
FIXME in CGCXX.cpp that I would like Anders to
take a look at.
llvm-svn: 84265
|
| |
|
|
|
|
|
|
|
| |
only supporting a single stat cache. The immediate benefit of this
change is that we can now generate a PCH/AST file when including
another PCH file; in the future, the chain of stat caches will likely
be useful with multiple levels of PCH files.
llvm-svn: 84263
|
| |
|
|
|
|
| |
patch by Zhanyong Wan!
llvm-svn: 84259
|
| |
|
|
| |
llvm-svn: 84255
|
| |
|
|
| |
llvm-svn: 84254
|
| |
|
|
| |
llvm-svn: 84245
|
| |
|
|
|
|
| |
CheckCastTypes.
llvm-svn: 84242
|
| |
|
|
| |
llvm-svn: 84241
|
| |
|
|
| |
llvm-svn: 84240
|
| |
|
|
| |
llvm-svn: 84237
|
| |
|
|
| |
llvm-svn: 84231
|
| |
|
|
| |
llvm-svn: 84227
|
| |
|
|
|
|
|
|
| |
touched by StoreManager::InvalidateRegion().
This fixes <rdar://problem/7257223> and <rdar://problem/7283470>.
llvm-svn: 84223
|
| |
|
|
|
|
|
|
|
|
| |
TypeLoc records for declarations; it should not be necessary to represent it
directly in the type system.
Please complain if you were using these classes and feel you can't replicate
previous functionality using the TypeLoc API.
llvm-svn: 84222
|
| |
|
|
|
|
| |
arrays (<rdar://problem/7283470>).
llvm-svn: 84221
|
| |
|
|
|
|
| |
be defined everywhere.
llvm-svn: 84220
|
| |
|
|
| |
llvm-svn: 84219
|
| |
|
|
|
|
| |
templates
llvm-svn: 84217
|
| |
|
|
|
|
|
|
|
| |
CheckSpecializationInstantiationRedecl to check for
redeclarations/instantiations. Also fixes a longstanding issue where
our explicit-instantiation location information wasn't as good as it
could have been.
llvm-svn: 84216
|
| |
|
|
|
|
|
| |
compile-time error now; moreover, remove the need for an explicit hasInnerType()
call. Thanks to Doug Gregor for the metaprogramming approach.
llvm-svn: 84215
|
| |
|
|
|
|
| |
This fixes <rdar://problem/7306898>
llvm-svn: 84213
|
| |
|
|
|
|
| |
summaries. No functionality change.
llvm-svn: 84210
|
| |
|
|
| |
llvm-svn: 84208
|
| |
|
|
| |
llvm-svn: 84207
|
| |
|
|
| |
llvm-svn: 84203
|
| |
|
|
|
|
|
|
|
| |
generation API (initial API implementation).
Added clang_createTranslationUnitFromSourceFile().
Changed clang_createIndex() to lookup the location of clang (using dladdr).
llvm-svn: 84198
|
| |
|
|
|
|
|
|
| |
isn't implemented yet.
- <rdar://problem/7297571> Clang should use pretokenized headers for C++ PCH
files
llvm-svn: 84197
|
| |
|
|
| |
llvm-svn: 84189
|
| |
|
|
|
|
|
|
|
| |
instantiation redeclaration semantics for function template
specializations and member functions of class template
specializations. Also, record the point of instantiation for
explicit-instantiated functions and static data members.
llvm-svn: 84188
|
| |
|
|
|
|
|
|
|
|
| |
sets of builtin operators. Currently, it is applied
to '++' and '->*' operators. I need to apply it to others
as well. Also, heuristics need be applied to
BuiltinCandidateTypeSet::AddPointerWithMoreQualifiedTypeVariants.
This is WIP.
llvm-svn: 84187
|
| |
|
|
|
|
|
|
| |
specializations. Work in progress; there's more cleanup required to
actually use the new CheckSpecializationInstantiationRedecl checker
uniformly.
llvm-svn: 84185
|
| |
|
|
| |
llvm-svn: 84183
|
| |
|
|
|
|
|
|
| |
functions/static data members of class template specializations that
do not have definitions. This is the latter part of [temp.explicit]p4;
the former part still needs more testing.
llvm-svn: 84182
|
| |
|
|
|
|
|
|
| |
cases where an explicit instantiation requires a definition; the
remainder of these checks will come with the implementation of
paragraph 4 of [temp.explicit].
llvm-svn: 84181
|
| |
|
|
|
|
|
| |
non-virtual part of the return result adjustments for covariant
thunks. WIP.
llvm-svn: 84178
|
| |
|
|
| |
llvm-svn: 84176
|
| |
|
|
| |
llvm-svn: 84169
|
| |
|
|
|
|
|
|
|
|
|
| |
most of the unsafe boilerplate out of TypeLoc. Create a QualifiedLoc class
to represent the idea that we *might* start representing source locations
of qualifiers. Dealing with qualifiers explicitly like this also lets us
efficiently ignore them in all the concrete cases.
This should make it obvious and easy to add new TypeLoc subclasses.
llvm-svn: 84168
|
| |
|
|
| |
llvm-svn: 84167
|
| |
|
|
|
|
| |
Track path information completely to ensure we get all the overrides. WIP.
llvm-svn: 84166
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RegionStoreManager::Retrieve() that was intended to handle conflated uses of pointers as integers.
It turns out this isn't needed, and resulted in inconsistent behavior when creating symbolic values on the following test case in 'tests/Analysis/misc-ps.m':
typedef struct _BStruct { void *grue; } BStruct;
void testB_aux(void *ptr);
void testB(BStruct *b) {
{
int *__gruep__ = ((int *)&((b)->grue));
int __gruev__ = *__gruep__;
testB_aux(__gruep__);
}
{
int *__gruep__ = ((int *)&((b)->grue));
int __gruev__ = *__gruep__;
if (~0 != __gruev__) {}
}
}
When the code was analyzed with '-arch x86_64', the value assigned to '__gruev__' be would be a
symbolic integer, but for '-arch i386' the value assigned to '__gruev__' would be a symbolic region
(a blob of memory). With this change the value created is always a symbolic integer.
Since the code being removed was added to support analysis of code calling
OSAtomicCompareAndSwapXXX(), I also modified 'test/Analysis/NSString.m' to analyze the code in both
'-arch i386' and '-arch x86_64', and also added some complementary test cases to test the presence
of leaks when using OSAtomicCompareAndSwap32Barrier()/OSAtomicCompareAndSwap64Barrier() instead of
just their absence. This code change reveals that previously both RegionStore and BasicStore were
handling these cases wrong, and would never cause the analyzer to emit a leak in these cases (false
negatives). Now RegionStore gets it right, but BasicStore still gets it wrong (and hence it has been
disabled temporarily for this test case).
llvm-svn: 84163
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
struct A { };
struct B : A { };
void f() {
const A& a = B();
}
correctly. (This now does the offset conversion if necessary and calls the destructor when a goes out of scope).
llvm-svn: 84162
|
| |
|
|
| |
llvm-svn: 84161
|
| |
|
|
| |
llvm-svn: 84160
|
| |
|
|
| |
llvm-svn: 84157
|
| |
|
|
|
|
|
| |
instantiations, since the requirements are too different from those
for template specializations. Simplify it slightly.
llvm-svn: 84156
|
| |
|
|
|
|
|
| |
focusing on the scope- and qualifier-related semantic requirements in
C++ [temp.explicit]p2.
llvm-svn: 84154
|
| |
|
|
|
|
| |
the use of Elsa
llvm-svn: 84149
|
| |
|
|
| |
llvm-svn: 84148
|
| |
|
|
| |
llvm-svn: 84142
|