| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
destructor calls, e.g.,
p->T::~T
We now detect when the member access that we've parsed, e.g.,
p-> or x.
may be a pseudo-destructor expression, either because the type of p or
x is a scalar or because it is dependent (and, therefore, may become a
scalar at template instantiation time).
We then parse the pseudo-destructor grammar specifically:
::[opt] nested-name-specifier[opt] type-name :: ∼ type-name
and hand those results to a new action, ActOnPseudoDestructorExpr,
which will cope with both dependent member accesses of destructors and
with pseudo-destructor expressions.
This commit affects the parsing of pseudo-destructors, only; the
semantic actions still go through the semantic actions for member
access expressions. That will change soon.
llvm-svn: 97045
|
| |
|
|
|
|
|
| |
apply it only to the function itself, and never to the return type. Fixes part
of PR6408.
llvm-svn: 97015
|
| |
|
|
| |
llvm-svn: 97002
|
| |
|
|
|
|
| |
llvm-gcc does, but are more strict on what uses of weakref we accept.
llvm-svn: 96992
|
| |
|
|
|
|
|
|
| |
(with no names)
that refer to an undefined class.
llvm-svn: 96976
|
| |
|
|
|
|
| |
the result is integral. Fixes <rdar://problem/7676608>.
llvm-svn: 96970
|
| |
|
|
|
|
|
| |
the canonical calling conventions instead of comparing the raw calling
conventions directly. Fixes PR6361.
llvm-svn: 96895
|
| |
|
|
|
|
| |
to libAnalysis (with only the error reporting in libSema).
llvm-svn: 96893
|
| |
|
|
| |
llvm-svn: 96892
|
| |
|
|
|
|
| |
and into libAnalysis.
llvm-svn: 96872
|
| |
|
|
| |
llvm-svn: 96855
|
| |
|
|
| |
llvm-svn: 96850
|
| |
|
|
| |
llvm-svn: 96848
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 96847
|
| |
|
|
|
|
|
|
|
|
| |
C++98/03 and C++0x, since the '0x semantics break valid C++98/03
code. This new mess is tracked by core issue 399, which is still
unresolved.
Fixes PR6358 and PR6359.
llvm-svn: 96836
|
| |
|
|
| |
llvm-svn: 96819
|
| |
|
|
|
|
| |
between cv1 T* and cv2 T*.
llvm-svn: 96787
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
errors, e.g.:
t.c:1:21: error: redefinition of parameter 'x'
int test(int x, int x);
^
t.c:1:14: note: previous declaration is here
int test(int x, int x);
^
llvm-svn: 96769
|
| |
|
|
|
|
|
|
| |
fixing up a few callers that thought they were propagating NoReturn
information but were in fact saying something about exception
specifications.
llvm-svn: 96766
|
| |
|
|
|
|
|
|
|
|
|
|
| |
nested-name-specifier, e.g.,
typedef int Int;
int *p;
p->Int::~Int();
This weakens the invariant that the only types in nested-name-specifiers are tag types (restricted to class types in C++98/03). However, we weaken this invariant as little as possible, accepting arbitrary types in nested-name-specifiers only when we're in a member access expression that looks like a pseudo-destructor expression.
llvm-svn: 96743
|
| |
|
|
|
|
| |
type (per C++ [class.copy]p3). Make sure that includes copies that involve a derived-to-base conversion. Fixes PR6141.
llvm-svn: 96742
|
| |
|
|
|
|
|
| |
figure out how not to break lots of code using this. See PR6358 and PR6359 for
motivating examples. FIXME's left in the code and the test.
llvm-svn: 96733
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
methods, but
instead it crashes on them. We might extend this attribute to work on methods, but for
now fix the crasher. Addresses <rdar://problem/7670939>.
llvm-svn: 96723
|
| |
|
|
|
|
| |
when -fms-extensions is specified. Fixes <rdar://problem/7653870>.
llvm-svn: 96722
|
| |
|
|
|
|
| |
-fms-extensions is enabled. Fixes <rdar://problem/7669559>.
llvm-svn: 96721
|
| |
|
|
|
|
| |
blocks. WIP.
llvm-svn: 96696
|
| |
|
|
|
|
| |
there is a setter but no getter (part of radar 7664555).
llvm-svn: 96687
|
| |
|
|
|
|
|
|
|
|
|
|
| |
from an instance method. Previously, we were following the Objective-C
name lookup rules for ivars, which are of course completely different
from and incompatible with the Objective-C++ rules.
For the record, the Objective-C++ rules are the sane ones.
This is another part of <rdar://problem/7660386>.
llvm-svn: 96677
|
| |
|
|
|
|
|
| |
name finds something other than a TypedefDecl or an
ObjCInterfaceDecl. This is a small part of <rdar://problem/7660386>.
llvm-svn: 96676
|
| |
|
|
|
|
|
|
| |
This was causing buildbot breakage.
This reverts commit d46e952cc8cb8d9eed8657d9a0b267910a0f745a.
llvm-svn: 96652
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
test suite.
llvm-svn: 96608
|
| |
|
|
|
|
|
| |
break if you declare an actual function using that typedef. Come to think of it,
maybe I should make this part of the type.)
llvm-svn: 96570
|
| |
|
|
|
|
|
| |
- Also recognize __force_align_arg_pointer__.
- Don't warn if it's used on a function pointer typedef.
llvm-svn: 96568
|
| |
|
|
| |
llvm-svn: 96567
|
| |
|
|
| |
llvm-svn: 96562
|
| |
|
|
|
|
| |
does. Fixes PR5253.
llvm-svn: 96553
|
| |
|
|
|
|
|
| |
signed<->unsigned conversion with the same bit width. Fixes
<rdar://problem/7658121>.
llvm-svn: 96545
|
| |
|
|
|
|
|
| |
match 'ns_returns_retained' and 'cf_returns_retained' respectively. These
are not yet hooked up to the static analyzer.
llvm-svn: 96535
|
| |
|
|
|
|
| |
types. Fixes <rdar://problem/7643909>.
llvm-svn: 96531
|
| |
|
|
|
|
|
| |
sure that we get the "too large" vs. "too small" part of the
diagnostic correct.
llvm-svn: 96524
|
| |
|
|
| |
llvm-svn: 96484
|
| |
|
|
|
|
| |
implementation (toward radar 7547942).
llvm-svn: 96479
|
| |
|
|
|
|
| |
functions to warn about. Update test case.
llvm-svn: 96452
|
| |
|
|
| |
llvm-svn: 96447
|
| |
|
|
|
|
| |
our own Chris Lattner).
llvm-svn: 96431
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
disaster. Fixes PR6161.
llvm-svn: 96371
|