| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 131310
|
| |
|
|
|
|
| |
This fixes PR9910
llvm-svn: 131309
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__has_extension is a function-like macro which takes the same set
of feature identifiers as __has_feature. It evaluates to 1 if the
feature is supported by Clang in the current language (either as a
language extension or a standard language feature) or 0 if not.
At the same time, add support for the C1X feature identifiers
c_generic_selections (renamed from generic_selections) and
c_static_assert, and document them.
Patch by myself and Jean-Daniel Dupas.
llvm-svn: 131308
|
| |
|
|
| |
llvm-svn: 131301
|
| |
|
|
|
|
| |
*mmintrin.h files.
llvm-svn: 131300
|
| |
|
|
|
|
| |
-fno-constant-cfstrings. Patch by Jonathan Schleifer.
llvm-svn: 131298
|
| |
|
|
|
|
| |
'true' on detecting protocol cycles. No functionality change.
llvm-svn: 131297
|
| |
|
|
|
|
| |
One more special member to go
llvm-svn: 131287
|
| |
|
|
|
|
|
|
|
| |
This introduces a generic base class for the expression evaluator
classes, which handles a few common expression types which were
previously handled separately in each class. Also, the expression
evaluator now uses ConstStmtVisitor.
llvm-svn: 131281
|
| |
|
|
| |
llvm-svn: 131278
|
| |
|
|
|
|
|
| |
constant, also consider whether it's a class type that has any mutable
fields. If so, it can't be a global constant.
llvm-svn: 131276
|
| |
|
|
|
|
|
|
| |
template parameter lists to scope specifiers for friend declarations
about injected class name types. Fixes the
g++.dg/template/memfriend5.C regression in the GCC testsuite.
llvm-svn: 131272
|
| |
|
|
| |
llvm-svn: 131270
|
| |
|
|
|
|
| |
correct unaligned load.
llvm-svn: 131268
|
| |
|
|
| |
llvm-svn: 131260
|
| |
|
|
| |
llvm-svn: 131259
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
what size the integral type is. Necessary to parse MFC code.
Example:
void f(char *ptr) {
char var = (char)ptr;
}
llvm-svn: 131201
|
| |
|
|
|
|
| |
Concludes // radar://8823265.
llvm-svn: 131188
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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: 131126
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
unions. Fixes PR8326.
llvm-svn: 131109
|