| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 80207
|
| |
|
|
|
|
| |
instantiated correctly for temporary object expressions.
llvm-svn: 80206
|
| |
|
|
|
|
| |
non-abstract before creating any expressions. This assures that any templates are instantiated if necessary.
llvm-svn: 80200
|
| |
|
|
|
|
| |
greatly simplifying the logic of the analyzer in many places. We now only distinguish between block-level expressions and subexpressions in Environment::RemoveDeadBindings and GRState pretty-printing.
llvm-svn: 80194
|
| |
|
|
| |
llvm-svn: 80183
|
| |
|
|
| |
llvm-svn: 80182
|
| |
|
|
|
|
| |
almost correct. :-)
llvm-svn: 80181
|
| |
|
|
| |
llvm-svn: 80178
|
| |
|
|
|
|
| |
ParenListExpr representing the direct initializer of a declaration
llvm-svn: 80177
|
| |
|
|
| |
llvm-svn: 80175
|
| |
|
|
| |
llvm-svn: 80174
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
name, e.g.,
x->Base::f()
retain the qualifier (and its source range information) in a new
subclass of MemberExpr called CXXQualifiedMemberExpr. Provide
construction, transformation, profiling, printing, etc., for this new
expression type.
When a virtual function is called via a qualified name, don't emit a
virtual call. Instead, call that function directly. Mike, could you
add a CodeGen test for this, too?
llvm-svn: 80167
|
| |
|
|
|
|
| |
RequireCompleteType now creates a PartialDiagnostic and calls the new function.
llvm-svn: 80165
|
| |
|
|
| |
llvm-svn: 80163
|
| |
|
|
|
|
| |
types or type-dependent expressions.
llvm-svn: 80143
|
| |
|
|
| |
llvm-svn: 80142
|
| |
|
|
|
|
|
| |
but not yet necessarily perfectly consistent with gcc. Also addressed
Doug and John's comments.
llvm-svn: 80137
|
| |
|
|
| |
llvm-svn: 80135
|
| |
|
|
|
|
|
|
|
|
| |
Issue reported on cfe-dev.
Also fixed the code to use isConstant to determine whether to generate a
constant global, to be consistent with CodeGenModule. This probably
needs to be refactored to deal with C++, though.
llvm-svn: 80131
|
| |
|
|
| |
llvm-svn: 80129
|
| |
|
|
|
|
| |
type convesions of class objects [class.conv]. WIP.
llvm-svn: 80127
|
| |
|
|
|
|
| |
declaration is in scope
llvm-svn: 80126
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
TypenameType if getTypeName is looking at a member of an unknown
specialization. This allows us to properly parse class templates that
derived from type that could only otherwise be described by a typename type,
e.g.,
template<class T> struct X {};
template<typename T> struct Y : public X<T>::X { };
Fixes PR4381.
llvm-svn: 80123
|
| |
|
|
|
|
| |
call it.
llvm-svn: 80122
|
| |
|
|
| |
llvm-svn: 80114
|
| |
|
|
|
|
| |
conversions, from Sylvere Teissier!
llvm-svn: 80112
|
| |
|
|
|
|
| |
Zaffanella
llvm-svn: 80097
|
| |
|
|
|
|
| |
Bagnara with a fix from Enea Zaffanella!
llvm-svn: 80094
|
| |
|
|
| |
llvm-svn: 80066
|
| |
|
|
|
|
|
|
| |
not yet
necessarily perfectly consistent with gcc.
llvm-svn: 80064
|
| |
|
|
|
|
| |
in the constructor prologue.
llvm-svn: 80060
|
| |
|
|
|
|
|
|
|
|
|
|
| |
qualified name does not actually refer into a class/class
template/class template partial specialization.
Improve printing of nested-name-specifiers to eliminate redudant
qualifiers. Also, make it possible to output a nested-name-specifier
through a DiagnosticBuilder, although there are relatively few places
that will use this leeway.
llvm-svn: 80056
|
| |
|
|
| |
llvm-svn: 80055
|
| |
|
|
|
|
| |
values and trying to load/store from arrays. RegionStoreManager already properly handles these cases well; we just need to gracefully not handle this case in BasicStoreManager. This fixes PR 4781.
llvm-svn: 80051
|
| |
|
|
|
|
| |
when using the non-fragile Objective-C ABI. This fixes <rdar://problem/7168531>.
llvm-svn: 80047
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
their members, including member class template, member function
templates, and member classes and functions of member templates.
To actually parse the nested-name-specifiers that qualify the name of
an out-of-line definition of a member template, e.g.,
template<typename X> template<typename Y>
X Outer<X>::Inner1<Y>::foo(Y) {
return X();
}
we need to look for the template names (e.g., "Inner1") as a member of
the current instantiation (Outer<X>), even before we have entered the
scope of the current instantiation. Since we can't do this in general
(i.e., we should not be looking into all dependent
nested-name-specifiers as if they were the current instantiation), we
rely on the parser to tell us when it is parsing a declaration
specifier sequence, and, therefore, when we should consider the
current scope specifier to be a current instantiation.
Printing of complicated, dependent nested-name-specifiers may be
somewhat broken by this commit; I'll add tests for this issue and fix
the problem (if it still exists) in a subsequent commit.
llvm-svn: 80044
|
| |
|
|
|
|
| |
functions that don't instantiate definitions.
llvm-svn: 80037
|
| |
|
|
|
|
|
| |
implicit cast logic in RegionStoreManager to BasicStoreManager. This involved
moving CastRetriedVal from RegionStoreManager to StoreManager.
llvm-svn: 80026
|
| |
|
|
| |
llvm-svn: 80018
|
| |
|
|
|
|
|
| |
accurately. Prevents the assert from triggering incorrectly when friending
functions first declared in extern "C" contexts. Fixes bug 4757.
llvm-svn: 80016
|
| |
|
|
|
|
|
|
|
| |
the logic is there for out-of-line definitions with multiple levels of
nested templates, but this is still a work-in-progress: we're having
trouble determining when we should look into a dependent
nested-name-specifier.
llvm-svn: 80003
|
| |
|
|
|
|
| |
Fixes pr4771.
llvm-svn: 79999
|
| |
|
|
| |
llvm-svn: 79991
|
| |
|
|
| |
llvm-svn: 79987
|
| |
|
|
|
|
| |
the parameter type before checking that the expression is a valid initializer.
llvm-svn: 79986
|
| |
|
|
| |
llvm-svn: 79985
|
| |
|
|
| |
llvm-svn: 79984
|
| |
|
|
|
|
|
| |
Now AnalysisManager is the only place we can get CodeDecl.
This leads to an API change: GRState::bindExpr() now takes the CFG argument.
llvm-svn: 79980
|
| |
|
|
| |
llvm-svn: 79976
|
| |
|
|
| |
llvm-svn: 79975
|