| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
how we find the operator delete that matches withe operator new we
found in a C++ new-expression.
This will also need CodeGen support. On a happy note, we're now a
"nans" away from building tramp3d-v4.
llvm-svn: 97209
|
| |
|
|
|
|
| |
bogus warning. Fixes radar 7682116.
llvm-svn: 97157
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions that look like pseudo-destructors, e.g.,
p->T::~T()
where p has dependent type.
At template instantiate time, we determine whether we actually have a
pseudo-destructor or a member access, and funnel down to the
appropriate routine in Sema.
Fixes PR6380.
llvm-svn: 97092
|
| |
|
|
|
|
|
|
|
|
|
| |
CXXPseudoDestructorExpr.
Update template instantiation for pseudo-destructor expressions to use
this source information and to make use of
Sema::BuildPseudoDestructorExpr when the base expression is dependent
or refers to a scalar type.
llvm-svn: 97079
|
| |
|
|
|
|
| |
Fixes PR6373.
llvm-svn: 97037
|
| |
|
|
|
|
| |
llvm-gcc does, but are more strict on what uses of weakref we accept.
llvm-svn: 96992
|
| |
|
|
|
|
|
| |
__alignof__ operator, make sure to take into account the packed alignment
of the struct/union/class itself. Matches GCC's behavior and fixes PR6362.
llvm-svn: 96884
|
| |
|
|
| |
llvm-svn: 96850
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) emit base destructors as aliases to their unique base class destructors
under some careful conditions. This is enabled for the same targets that can
support complete-to-base aliases, i.e. not darwin.
2) Emit non-variadic complete constructors for classes with no virtual bases
as calls to the base constructor. This is enabled on all targets and in
theory can trigger in situations that the alias optimization can't (mostly
involving virtual bases, mostly not yet supported).
These are bundled together because I didn't think it worthwhile to split them,
not because they really need to be.
llvm-svn: 96842
|
| |
|
|
|
|
| |
declaration. This is the trivial part of PR6365.
llvm-svn: 96792
|
| |
|
|
| |
llvm-svn: 96788
|
| |
|
|
|
|
|
|
| |
fixing up a few callers that thought they were propagating NoReturn
information but were in fact saying something about exception
specifications.
llvm-svn: 96766
|
| |
|
|
|
|
| |
destructors, and conversions. Unfortunately, this cannot be tested yet, since we don't have C++ PCH support.
llvm-svn: 96741
|
| |
|
|
| |
llvm-svn: 96740
|
| |
|
|
|
|
| |
into a single function, ImportDeclContext. Use it rather than explicit loops. No functionality change.
llvm-svn: 96739
|
| |
|
|
|
|
|
| |
are for out of line declarations more easily. This simplifies the logic and
handles the case of out-of-line class definitions correctly. Fixes PR6107.
llvm-svn: 96729
|
| |
|
|
|
|
|
|
| |
This was causing buildbot breakage.
This reverts commit d46e952cc8cb8d9eed8657d9a0b267910a0f745a.
llvm-svn: 96652
|
| |
|
|
| |
llvm-svn: 96650
|
| |
|
|
|
|
| |
empty context
llvm-svn: 96648
|
| |
|
|
| |
llvm-svn: 96647
|
| |
|
|
| |
llvm-svn: 96646
|
| |
|
|
|
|
| |
operators, and compound assignment operators.
llvm-svn: 96643
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to initializer expressions in an array allocated using ASTContext.
This plugs a memory leak when ASTContext uses a BumpPtrAllocator to
allocate memory for AST nodes.
In my mind this isn't an ideal solution; it would be nice to have
a general "vector"-like class that allocates memory using ASTContext,
but whose guts could be separated from the methods of InitListExpr
itself. I haven't gone and taken this approach yet because it isn't
clear yet if we'll eventually want an alternate solution for recylcing
memory using by InitListExprs as we are constructing the ASTs.
llvm-svn: 96642
|
| |
|
|
|
|
| |
instead relies on their DeclContext for iteration, etc.
llvm-svn: 96638
|
| |
|
|
| |
llvm-svn: 96577
|
| |
|
|
| |
llvm-svn: 96557
|
| |
|
|
| |
llvm-svn: 96555
|
| |
|
|
| |
llvm-svn: 96554
|
| |
|
|
| |
llvm-svn: 96551
|
| |
|
|
|
|
|
| |
match 'ns_returns_retained' and 'cf_returns_retained' respectively. These
are not yet hooked up to the static analyzer.
llvm-svn: 96535
|
| |
|
|
|
|
| |
that we can't test it yet.
llvm-svn: 96516
|
| |
|
|
| |
llvm-svn: 96483
|
| |
|
|
| |
llvm-svn: 96478
|
| |
|
|
| |
llvm-svn: 96447
|
| |
|
|
|
|
| |
Update test case.
llvm-svn: 96444
|
| |
|
|
| |
llvm-svn: 96442
|
| |
|
|
|
|
| |
Check superclasses when merging two Objective-C @interfaces.
llvm-svn: 96420
|
| |
|
|
|
|
|
|
| |
which describes temporary objects of class type in C++. Use this to
provide a more-specific, remappable diagnostic when takin the address
of such a temporary.
llvm-svn: 96396
|
| |
|
|
|
|
| |
unused-value warnings. This is a common macro idiom.
llvm-svn: 96326
|
| |
|
|
|
|
| |
accept const decls.
llvm-svn: 96325
|
| |
|
|
| |
llvm-svn: 96306
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
comparing their types under the assumption that they are equivalent,
rather than importing the types and then checking for compatibility. A
few minor tweaks here:
- Teach structural matching to handle compatibility between
function types with prototypes and those without prototypes.
- Teach structural matching that an incomplete record decl is the
same as any other record decl with the same name.
- Keep track of pairs of declarations that we have already checked
(but failed to find as structurally matching), so we don't emit
diagnostics repeatedly.
- When importing a typedef of an anonymous tag, be sure to link the
imported tag type to its typedef.
With these changes, we survive a repeated import of <stdlib.h> and
<stdio.h>. Alas, the ASTNodeImporter is getting a little grotty.
llvm-svn: 96298
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
two types in different AST contexts are equivalent. Rather than
transforming the type from one context into the other context, we
perform a deep structural comparison of the types. This change
addresses a serious problem with recursive data types like
struct ListNode {
int value;
struct ListNode *Next;
} xList;
llvm-svn: 96278
|
| |
|
|
|
|
|
|
| |
those declared in it. This is to allow duplicate
property diagnostics for properties declared in class extensions
multiple times (radar 7629420) and for future use.
llvm-svn: 96276
|
| |
|
|
| |
llvm-svn: 96211
|
| |
|
|
| |
llvm-svn: 96116
|
| |
|
|
|
|
|
| |
Use that while fixing a nasty misuse of qsort in vtable codegen which, somehow,
has not actually caused a crash.
llvm-svn: 96062
|
| |
|
|
| |
llvm-svn: 96054
|
| |
|
|
|
|
|
| |
single Imported function, in preparation for fixing a serious design
flaw.
llvm-svn: 96044
|
| |
|
|
|
|
| |
enumerators, along with ImplicitCastExprs to make it work.
llvm-svn: 96024
|