| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 131255
|
| |
|
|
|
|
|
|
| |
don't build circular AST in protocol's protocol list
when user code has introduced it. Indexer and other
clients may crash. // rdar://9221614
llvm-svn: 131254
|
| |
|
|
|
|
| |
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g
llvm-svn: 131245
|
| |
|
|
|
|
| |
seen.
llvm-svn: 131242
|
| |
|
|
| |
llvm-svn: 131240
|
| |
|
|
|
|
|
|
| |
represent class extension.
Radar 9423077.
llvm-svn: 131239
|
| |
|
|
|
|
|
|
|
|
| |
(__m128){ p[0], p[1], p[2], p[3] }
which produces really bad code. This could be done in instcombine, but it's
probably better to do it in the front-end instead.
<rdar://problem/9424836>
llvm-svn: 131237
|
| |
|
|
| |
llvm-svn: 131230
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
They are actually grammatically considered definitions and parsed
accordingly.
This fixes the outstanding bugs regarding defaulting functions after
their declarations.
We now really nicely diagnose the following construct (try it!)
int foo() = delete, bar;
Still todo: Defaulted functions other than default constructors
Test cases (including for the above construct)
llvm-svn: 131228
|
| |
|
|
|
|
|
|
|
|
| |
defaulted default constructors.
As it happens, making sure that we handle out-of-line defaulted
functions properly will involved making sure that we actually parse them
correctly, so that's coming after.
llvm-svn: 131224
|
| |
|
|
|
|
|
| |
We still don't parse out-of-line defaults correctly, which is needed to
get the full effect out of this patch.
llvm-svn: 131223
|
| |
|
|
| |
llvm-svn: 131222
|
| |
|
|
| |
llvm-svn: 131220
|
| |
|
|
| |
llvm-svn: 131215
|
| |
|
|
| |
llvm-svn: 131212
|
| |
|
|
|
|
| |
which they are defined: provide an empty list of arguments for each containing template context during substitution.
llvm-svn: 131211
|
| |
|
|
|
|
|
| |
argument deduction failures. Only implemented in C++0x, since this is
a significant change in behavior from C++98/03.
llvm-svn: 131209
|
| |
|
|
|
|
|
|
|
|
| |
nested of an out-of-line declaration, only require a 'template<>'
header for each enclosing class template that hasn't been previously
specialized; previously, we were requiring 'template<>' for enclosing
class templates and members of class templates that hadn't been
previously specialized. Fixes <rdar://problem/9422013>.
llvm-svn: 131207
|
| |
|
|
| |
llvm-svn: 131206
|
| |
|
|
|
|
| |
This means we get C++0x jump-across-intializer semantics correct.
llvm-svn: 131204
|
| |
|
|
|
|
|
|
| |
Yes, I'm aware that the diagnostics are awful.
Tests to follow.
llvm-svn: 131203
|
| |
|
|
| |
llvm-svn: 131202
|
| |
|
|
|
|
|
|
|
|
|
| |
what size the integral type is. Necessary to parse MFC code.
Example:
void f(char *ptr) {
char var = (char)ptr;
}
llvm-svn: 131201
|
| |
|
|
| |
llvm-svn: 131190
|
| |
|
|
|
|
| |
Concludes // radar://8823265.
llvm-svn: 131188
|
| |
|
|
|
|
|
|
| |
gcc.
Fixes PR9886.
llvm-svn: 131182
|
| |
|
|
|
|
|
| |
then teach -Wreturn-type to handle the same. Net effect: we now correctly
handle noreturn attributes on member calls in the CFG.
llvm-svn: 131178
|
| |
|
|
|
|
| |
dynamic_cast correctly.
llvm-svn: 131177
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
class scope.
This removes 2 errors when parsing MFC code with clang
Example:
class A {
virtual void f() = 0 { }
}
llvm-svn: 131175
|
| |
|
|
| |
llvm-svn: 131170
|
| |
|
|
|
|
| |
a logical operation.
llvm-svn: 131158
|
| |
|
|
|
|
|
|
| |
that they are C++0x extensions, and put them in the appropriate
group. We already support most of the semantics. Addresses
<rdar://problem/9407525>.
llvm-svn: 131153
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Wait, what?
So, we run Clang (and LLVM) tests in an environment where the md5sum of the
input files becomes a component of the path. When testing the preprocessor,
the path becomes part of the output (in line directives). In this test, we
were grepping for the absence of "abc" in the output. When the stars aligned
properly, the md5sum component of the path contained "abc" and the test
failed. Oops.
llvm-svn: 131147
|
| |
|
|
|
|
|
|
|
| |
I've edited one diagnostic which would print "copy constructor" for copy
constructors and "constructor" for any other constructor. If anyone is
extremely enamored with this, it can be reinstated with a simple boolean
flag rather than calling getSpecialMember, which is inappropriate.
llvm-svn: 131143
|
| |
|
|
| |
llvm-svn: 131142
|
| |
|
|
|
|
| |
CFGRecStmtDeclVisitor (crash in static analyzer).
llvm-svn: 131141
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the semantic context referenced by the nested-name-specifier rather
than the syntactic form of the nested-name-specifier. The previous
incarnation was based on my complete misunderstanding of C++
[temp.expl.spec]. The latest C++0x working draft clarifies the
requirements here, and this rewrite is intended to follow that.
Along the way, improve source location information in the
diagnostics. For example, if we report that a specific type needs or
doesn't need a 'template<>' header, we dig out that type in the
nested-name-specifier and highlight its range.
Fixes: PR5907, PR9421, PR8277, PR8708, PR9482, PR9668, PR9877, and
<rdar://problem/9135379>.
llvm-svn: 131138
|
| |
|
|
| |
llvm-svn: 131132
|
| |
|
|
| |
llvm-svn: 131127
|
| |
|
|
| |
llvm-svn: 131126
|
| |
|
|
|
|
| |
vector::data() access.
llvm-svn: 131116
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Focus is on default constructors for the time being. Currently the
exception specification and prototype are processed correctly. Codegen
might work but in all likelihood doesn't.
Note that due to an error, out-of-line defaulting of member functions is
currently impossible. It will continue to that until I muster up the
courage to admit that I secretly pray to epimetheus and that I need to
rework the way default gets from Parse -> Sema.
llvm-svn: 131115
|
| |
|
|
|
|
| |
reflect our new, more accurate AST.
llvm-svn: 131114
|
| |
|
|
|
|
| |
Also some -fdelayed-template-parsing test refactoring.
llvm-svn: 131113
|
| |
|
|
|
|
| |
unions. Fixes PR8326.
llvm-svn: 131109
|
| |
|
|
| |
llvm-svn: 131108
|
| |
|
|
|
|
| |
structs (impacts 32-bit only though).
llvm-svn: 131103
|
| |
|
|
|
|
| |
definitions to also include tag declarations. Fixes PR8151.
llvm-svn: 131102
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
hasTrivialDefaultConstructor() really really means it now.
Also implement a fun standards bug regarding aggregates. Doug, if you'd
like, I can un-implement that bug if you think it is truly a defect.
The bug is that non-special-member constructors are never considered
user-provided, so the following is an aggregate:
struct foo {
foo(int);
};
It's kind of bad, but the solution isn't obvious - should
struct foo {
foo (int) = delete;
};
be an aggregate or not?
Lastly, add a missing initialization to FunctionDecl.
llvm-svn: 131101
|
| |
|
|
|
|
|
| |
also consider whether any of the parameter types (as written, prior to
decay) are dependent. Fixes PR9880 and <rdar://problem/9408413>.
llvm-svn: 131099
|