| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 74419
|
| |
|
|
|
|
| |
Fixes PR4470.
llvm-svn: 74413
|
| |
|
|
|
|
| |
default to on.
llvm-svn: 74412
|
| |
|
|
| |
llvm-svn: 74410
|
| |
|
|
|
|
| |
symbol.
llvm-svn: 74408
|
| |
|
|
|
|
|
|
| |
function attributes. There are predefined macros that are defined when stack
protectors are used: __SSP__=1 with -fstack-protector and __SSP_ALL__=2 with
-fstack-protector-all.
llvm-svn: 74405
|
| |
|
|
|
|
|
|
| |
Handle rules for ExtVector + ExtVector and ExtVector + Scalar operations.
Fix problem Eli noticed where we were allowing pointer types to be splatted to
vector elements.
llvm-svn: 74404
|
| |
|
|
| |
llvm-svn: 74390
|
| |
|
|
|
|
| |
out an error for a malformed __builtin_offsetof.
llvm-svn: 74388
|
| |
|
|
|
|
| |
parameter has a dependent type.
llvm-svn: 74380
|
| |
|
|
| |
llvm-svn: 74369
|
| |
|
|
| |
llvm-svn: 74362
|
| |
|
|
|
|
|
|
| |
deduction from pointer and pointer-to-member types to work even in the
presence of a qualification conversion (C++ [temp.deduct.type]p3
bullet 2).
llvm-svn: 74354
|
| |
|
|
| |
llvm-svn: 74339
|
| |
|
|
| |
llvm-svn: 74335
|
| |
|
|
|
|
|
|
|
|
| |
of template instantiation, we were dropping cv-qualifiers on the
instantiated type in a few places. This change reshuffles the
type-instantiation code a little bit so that there's a single place
where we add qualifiers to the instantiated type, so that we won't end
up with this same bug in the future.
llvm-svn: 74331
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
non-dependent parameter types. Instead, class template partial
specializations perform a final check of all of the instantiated
arguments. This model is cleaner, and works better for function
templates where the "final check" occurs during overload resolution.
Also, cope with cv-qualifiers when the parameter type was originally a
reference type, so that the deduced argument can be more qualified
than the transformed argument.
llvm-svn: 74323
|
| |
|
|
| |
llvm-svn: 74314
|
| |
|
|
| |
llvm-svn: 74312
|
| |
|
|
| |
llvm-svn: 74307
|
| |
|
|
| |
llvm-svn: 74304
|
| |
|
|
|
|
|
| |
deducing template arguments from a function call. Plus, add a bunch of
tests.
llvm-svn: 74301
|
| |
|
|
|
|
| |
Add support for scalar to vector and partially initialized vector constant initializers.
llvm-svn: 74299
|
| |
|
|
|
|
|
|
|
|
| |
these are usually because the parser was thoroughly confused. In addition
to typing the value being declared as an int and hoping for the best, we
mark the value as invalid so we don't get chains of errors when it is
used downstream. In C, implicit int actually is valid, so typing the thing
as int is good and marking it invalid is bad. :)
llvm-svn: 74266
|
| |
|
|
|
|
|
|
| |
this case
but at least we don't crash :)
llvm-svn: 74264
|
| |
|
|
| |
llvm-svn: 74262
|
| |
|
|
| |
llvm-svn: 74258
|
| |
|
|
| |
llvm-svn: 74257
|
| |
|
|
| |
llvm-svn: 74247
|
| |
|
|
|
|
|
|
|
| |
For a FunctionDecl that has been instantiated due to template argument
deduction, we now store the primary template from which it was
instantiated and the deduced template arguments. From this
information, we can instantiate the body of the function template.
llvm-svn: 74232
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GRTransferFuncs had the conflated role of both constructing SVals (symbolic
expressions) as well as handling checker-specific logic. Now SValuator has the
role of constructing SVals from expressions and GRTransferFuncs just handles
checker-specific logic. The motivation is by separating these two concepts we
will be able to much more easily create richer constraint-generating logic
without coupling it to the main checker transfer function logic.
We now have one implementation of SValuator: SimpleSValuator.
SimpleSValuator is essentially the SVal-related logic that was in GRSimpleVals
(which is removed in this patch). This includes the logic for EvalBinOp,
EvalCast, etc. Because SValuator has a narrower role than the old
GRTransferFuncs, the interfaces are much simpler, and so is the implementation
of SimpleSValuator compared to GRSimpleVals. I also did a line-by-line review of
SVal-related logic in GRSimpleVals and cleaned it up while moving it over to
SimpleSValuator.
As a consequence of removing GRSimpleVals, there is no longer a
'-checker-simple' option. The '-checker-cfref' did everything that option did
but also ran the retain/release checker. Of course a user may not always wish to
run the retain/release checker, nor do we wish core analysis logic buried in the
checker-specific logic. The next step is to refactor the logic in CFRefCount.cpp
to separate out these pieces into the core analysis engine.
llvm-svn: 74229
|
| |
|
|
| |
llvm-svn: 74216
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
templates.
For example, this now type-checks (but does not instantiate the body
of deref<int>):
template<typename T> T& deref(T* t) { return *t; }
void test(int *ip) {
int &ir = deref(ip);
}
Specific changes/additions:
* Template argument deduction from a call to a function template.
* Instantiation of a function template specializations (just the
declarations) from the template arguments deduced from a call.
* FunctionTemplateDecls are stored directly in declaration contexts
and found via name lookup (all forms), rather than finding the
FunctionDecl and then realizing it is a template. This is
responsible for most of the churn, since some of the core
declaration matching and lookup code assumes that all functions are
FunctionDecls.
llvm-svn: 74213
|
| |
|
|
|
|
| |
index.
llvm-svn: 74202
|
| |
|
|
|
|
|
|
| |
This tool will be the test bed for indexing related operations. It basically reads PCH files passed by the command line and performs various operations.
Currently it can accept a file:line:column which resolves to a declaration/statement and displays some information about them.
llvm-svn: 74198
|
| |
|
|
|
|
| |
dependent. Fixes PR4444.
llvm-svn: 74175
|
| |
|
|
| |
llvm-svn: 74118
|
| |
|
|
| |
llvm-svn: 74080
|
| |
|
|
|
|
| |
function templates. C++ [temp.over.link] paragraphs 4-8.
llvm-svn: 74079
|
| |
|
|
| |
llvm-svn: 74051
|
| |
|
|
|
|
| |
ActOnFunctionDeclarator for function template definitions
llvm-svn: 74040
|
| |
|
|
| |
llvm-svn: 74033
|
| |
|
|
| |
llvm-svn: 74030
|
| |
|
|
| |
llvm-svn: 74027
|
| |
|
|
|
|
|
| |
handle function templates. There's no actual code for function
templates yet, but at least we complain about typedef templates.
llvm-svn: 74021
|
| |
|
|
|
|
|
|
|
| |
variables in ObjC's Next runtime mode. Next runtime also implicitly applies
'used' attribute on some of its meta-data. This results in two
'llvm.used' arrays to be generated, and one of them is renamed to
'llvm.used1'.
llvm-svn: 74008
|
| |
|
|
|
|
| |
when it should.
llvm-svn: 73992
|
| |
|
|
|
|
| |
point of instantation of a member function of a class template specialization
llvm-svn: 73956
|
| |
|
|
|
|
| |
evaluated. We seem to be the only ones to get this right.
llvm-svn: 73955
|
| |
|
|
| |
llvm-svn: 73938
|