| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
integral constant expression, make sure to find where the initializer
was provided---inside or outside the class definition---since that can
affect whether we have an integral constant expression (and, we need
to see the initializer itself).
llvm-svn: 85741
|
|
|
|
|
|
| |
codegen).
llvm-svn: 85552
|
|
|
|
|
|
|
| |
types. Preserve it through template instantiation. Preserve it through PCH,
although TSTs themselves aren't serializable, so that's pretty much meaningless.
llvm-svn: 85500
|
|
|
|
|
|
|
| |
address of a member template when explicit template arguments are
provided.
llvm-svn: 84991
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qualified reference to a declaration that is not a non-static data
member or non-static member function, e.g.,
namespace N { int i; }
int j = N::i;
Instead, extend DeclRefExpr to optionally store the qualifier. Most
clients won't see or care about the difference (since
QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the
number of top-level expression types that clients need to cope with,
brings the implementation of DeclRefExpr into line with MemberExpr,
and simplifies and unifies our handling of declaration references.
Extended DeclRefExpr to (optionally) store explicitly-specified
template arguments. This occurs when naming a declaration via a
template-id (which will be stored in a TemplateIdRefExpr) that,
following template argument deduction and (possibly) overload
resolution, is replaced with a DeclRefExpr that refers to a template
specialization but maintains the template arguments as written.
llvm-svn: 84962
|
|
|
|
|
|
| |
are updated.
llvm-svn: 84447
|
|
|
|
| |
llvm-svn: 84427
|
|
|
|
| |
llvm-svn: 84423
|
|
|
|
|
|
| |
- Really this should be simplified by the FIXME above, but I'm too deep in DFS.
llvm-svn: 84392
|
|
|
|
| |
llvm-svn: 84389
|
|
|
|
| |
llvm-svn: 84380
|
|
|
|
| |
llvm-svn: 84245
|
|
|
|
| |
llvm-svn: 84241
|
|
|
|
| |
llvm-svn: 84039
|
|
|
|
|
|
|
|
|
|
| |
which is a common idiom to improve PIC'ness of code using the addr of
label extension. This implementation is a gross hack, but the only other
alternative would be to teach evalutate about this horrid combination.
While GCC allows things like "&&foo - &&bar + 1", people don't use this
in practice. This implements PR5131.
llvm-svn: 83957
|
|
|
|
|
|
| |
about the reason, rdar://7186119.
llvm-svn: 83940
|
|
|
|
| |
llvm-svn: 83562
|
|
|
|
|
|
|
| |
handle checking for a null pointer for a zero-valued
enumerator; moving the test case from CodeGen to Sema.
llvm-svn: 83350
|
|
|
|
|
|
|
|
|
|
|
|
| |
value-dependent. Audit (and fixed) all calls to
Expr::isNullPointerConstant() to provide the correct behavior with
value-dependent expressions. Fixes PR5041 and a crash in libstdc++
<locale>.
In the same vein, properly compute value- and type-dependence for
ChooseExpr. Fixes PR4996.
llvm-svn: 82748
|
|
|
|
|
|
|
|
| |
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
|
|
|
|
| |
llvm-svn: 82514
|
|
|
|
|
|
|
|
|
|
|
| |
Several of the existing methods were identical to their respective
specializations, and so have been removed entirely. Several more 'leaf'
optimizations were introduced.
The getAsFoo() methods which imposed extra conditions, like
getAsObjCInterfacePointerType(), have been left in place.
llvm-svn: 82501
|
|
|
|
|
|
| |
expression.
llvm-svn: 82217
|
|
|
|
|
|
|
|
| |
- Doug, please check.
- PR4940.
llvm-svn: 82129
|
|
|
|
| |
llvm-svn: 82128
|
|
|
|
|
|
| |
a weak object.
llvm-svn: 82061
|
|
|
|
| |
llvm-svn: 81837
|
|
|
|
|
|
|
| |
structure-valued setter should cause a user error instead of
crash.
llvm-svn: 81769
|
|
|
|
| |
llvm-svn: 81590
|
|
|
|
|
|
|
| |
Also, treat the GNU __null as an integral constant expression to match
GCC's behavior.
llvm-svn: 81490
|
|
|
|
| |
llvm-svn: 81477
|
|
|
|
|
|
|
|
|
|
| |
integral constant expressions (for conversions to integer types,
naturally). I don't *think* that const_casts will ever get to this
point, but I also can't convince myself that they won't... so I've
taken the safe route and allowed the ICE checking code to look at
const_cast.
llvm-svn: 81453
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
|
|
| |
as __strong.
llvm-svn: 81283
|
|
|
|
|
|
| |
Weinig!
llvm-svn: 81237
|
|
|
|
| |
llvm-svn: 80862
|
|
|
|
|
|
|
|
|
| |
explicitly-specified template argument lists in member reference
expressions, e.g.,
x->f<int>()
llvm-svn: 80646
|
|
|
|
|
|
|
|
| |
space within the MemberExpr for the nested-name-specifier and its
source range. We'll do the same thing with explicitly-specified
template arguments, assuming I don't flip-flop again.
llvm-svn: 80642
|
|
|
|
|
|
|
| |
also be adding explicit template arguments as an additional
"adornment". No functionality change.
llvm-svn: 80628
|
|
|
|
| |
llvm-svn: 80432
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
"ObjCImplctSetterGetterRefExpr".
A field rename and more comments.
llvm-svn: 79537
|
|
|
|
|
|
|
|
| |
Removed an unnecessary loop to get to setters incoming
argument. Added DoxyGen comments. Still more work
to do in this area (WIP).
llvm-svn: 79365
|
|
|
|
| |
llvm-svn: 79191
|
|
|
|
|
|
|
| |
warnings, but it fails because we don't have the location of the .
and I don't understand ObjCKVCRefExpr. I'll revisit this later.
llvm-svn: 79190
|
|
|
|
| |
llvm-svn: 79173
|
|
|
|
| |
llvm-svn: 79171
|
|
|
|
| |
llvm-svn: 78783
|
|
|
|
| |
llvm-svn: 78760
|
|
|
|
|
|
| |
that uses "dot syntax" since it might have a side effect.
llvm-svn: 78704
|