| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
will be generated using the new vtable layout code. (The code is still not completely in place but this is a huge step forward).
llvm-svn: 99508
|
| |
|
|
|
|
|
| |
the redeclaration chain. Recommitted from r99477 with a fix: we need to
merge in default template arguments from previous declarations.
llvm-svn: 99496
|
| |
|
|
|
|
|
|
|
|
|
| |
buildbot. The tramp3d test fails.
--- Reverse-merging r99477 into '.':
U test/SemaTemplate/friend-template.cpp
U test/CXX/temp/temp.decls/temp.friend/p1.cpp
U lib/Sema/SemaTemplateInstantiateDecl.cpp
U lib/Sema/SemaAccess.cpp
llvm-svn: 99481
|
| |
|
|
|
|
|
|
|
| |
(1) Do not assume the data arguments start after the format string
(2) Do not use the fact that a function is variadic to treat it like a va_list printf function
Fixes PR 6697.
llvm-svn: 99480
|
| |
|
|
| |
llvm-svn: 99479
|
| |
|
|
| |
llvm-svn: 99477
|
| |
|
|
|
|
| |
Instead of setting the ReturnExpr GDM to NULL, remove it.
llvm-svn: 99470
|
| |
|
|
| |
llvm-svn: 99462
|
| |
|
|
|
|
| |
code for address points.
llvm-svn: 99461
|
| |
|
|
|
|
|
|
| |
initialization code. Exposed a bug where we were not marking an
implicit conversion as an lvalue when we were forming a call to a
conversion function whose return type is a reference.
llvm-svn: 99459
|
| |
|
|
|
|
|
|
| |
CheckReferenceInit) over to the new initialization code
(InitializationSequence), which is better-tested and doesn't require
us to compute the entire conversion sequence twice.
llvm-svn: 99452
|
| |
|
|
|
|
|
|
| |
EmitReferenceBindingToExpr() rather than assuming we have an
lvalue. This is just the lowest hanging fruit for PR6024, which still
requires a bit of work.
llvm-svn: 99447
|
| |
|
|
| |
llvm-svn: 99442
|
| |
|
|
| |
llvm-svn: 99441
|
| |
|
|
|
|
|
| |
not pick apart a CXXTemporaryObjectExpr because such an object
construction was explicitly written in the source code. Fixes PR6657.
llvm-svn: 99427
|
| |
|
|
|
|
| |
Class type to match gcc's. Fixes radar 7789113.
llvm-svn: 99425
|
| |
|
|
| |
llvm-svn: 99417
|
| |
|
|
|
|
| |
extension (radar 6812436).
llvm-svn: 99408
|
| |
|
|
|
|
|
|
| |
since we have absolutely no way to match them when they are declared
nor do we have a way to represent these parsed-but-not-checked friend
declarations.
llvm-svn: 99407
|
| |
|
|
|
|
| |
silencing a Clang warning
llvm-svn: 99405
|
| |
|
|
|
|
| |
Fixes PR6641.
llvm-svn: 99404
|
| |
|
|
|
|
| |
related information which avoids computing the same vtable layout over and over.
llvm-svn: 99403
|
| |
|
|
| |
llvm-svn: 99391
|
| |
|
|
|
|
|
|
|
| |
template <> friend void foo(int);
we need to change it to
friend void foo<>(int);
or else the user won't get the template specialization they obviously want.
llvm-svn: 99390
|
| |
|
|
| |
llvm-svn: 99389
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that was present in a prior declaration, emit a warning rather than a
hard error (which we did before, and still do with mismatched
exception specifications). Moreover, provide a fix-it hint with the
throw() clause that should be added, e.g.,
t.C:10:7: warning: 'operator new' is missing exception specification
'throw(std::bad_alloc)'
void *operator new(unsigned long sz)
^
throw(std::bad_alloc)
As part of this, disable the warning when we're missing an exception
specification on operator new, operator new[], operator delete, or
operator delete[] when exceptions are turned off (-fno-exceptions).
Fixes PR5957.
llvm-svn: 99388
|
| |
|
|
| |
llvm-svn: 99385
|
| |
|
|
| |
llvm-svn: 99384
|
| |
|
|
|
|
|
|
|
| |
templates. So delay access-control diagnostics when (for example) the target
of a friend declaration is a specific specialization of a template.
I was surprised to find that this was required for an access-controlled selfhost.
llvm-svn: 99383
|
| |
|
|
|
|
|
| |
operators, make sure that the implicitly-declared global new and
delete operators are always available. Fixes PR5904.
llvm-svn: 99382
|
| |
|
|
|
|
| |
(finally).
llvm-svn: 99381
|
| |
|
|
|
|
| |
scope. Fixes PR6619.
llvm-svn: 99377
|
| |
|
|
| |
llvm-svn: 99374
|
| |
|
|
|
|
|
|
|
|
| |
each namespace, even when the outer namespace has multiple
definitions. As part of this, collapsed two pointers worth of storage
(original namespace and inner anonymous namespace) into a single
pointer with a distinguishing bit, since the two are mutually
exclusive, saving a pointer per NamespaceDecl. Fixes PR6620.
llvm-svn: 99368
|
| |
|
|
|
|
| |
Add a thunks.cpp test.
llvm-svn: 99367
|
| |
|
|
| |
llvm-svn: 99365
|
| |
|
|
| |
llvm-svn: 99364
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function within a class hierarchy (C++ [class.virtual]p2).
We use the final-overrider computation to determine when a particular
class is ill-formed because it has multiple final overriders for a
given virtual function (e.g., because two virtual functions override
the same virtual function in the same virtual base class). Fixes
PR5973.
We also use the final-overrider computation to determine which virtual
member functions are pure when determining whether a class is
abstract or diagnosing the improper use of an abstract class. The
prior approach to determining whether there were any pure virtual
functions in a class didn't cope with virtual base class subobjects
properly, and could not easily be fixed to deal with the oddities of
subobject hiding. Fixes PR6631.
llvm-svn: 99351
|
| |
|
|
| |
llvm-svn: 99317
|
| |
|
|
|
|
|
|
| |
of the
ivar and @property respectively.
llvm-svn: 99312
|
| |
|
|
|
|
| |
declaration.
llvm-svn: 99311
|
| |
|
|
|
|
|
| |
types using property syntax to access setter/getters.
(also radar 7351147).
llvm-svn: 99307
|
| |
|
|
|
|
| |
as the thunk already.
llvm-svn: 99303
|
| |
|
|
|
|
| |
properties of complex type. Radar 7351147.
llvm-svn: 99299
|
| |
|
|
| |
llvm-svn: 99294
|
| |
|
|
| |
llvm-svn: 99287
|
| |
|
|
|
|
|
| |
DeclContext because we don't want a NULL DeclContext. Instead, use the
current context.
llvm-svn: 99281
|
| |
|
|
| |
llvm-svn: 99280
|
| |
|
|
| |
llvm-svn: 99279
|
| |
|
|
| |
llvm-svn: 99277
|