| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
mangled to avoid doing it twice for platforms that use prefixes like
Darwin.
llvm-svn: 131311
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
__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
|
| |
|
|
|
|
| |
*mmintrin.h files.
llvm-svn: 131300
|
| |
|
|
|
|
| |
query functions, from Erik Verbruggen!
llvm-svn: 131295
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
More comprehensive testing once copy {constructors,assignment operators}
can be defaulted.
llvm-svn: 131275
|
| |
|
|
| |
llvm-svn: 131270
|
| |
|
|
|
|
| |
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: 131220
|
| |
|
|
|
|
| |
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: 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
|
| |
|
|
|
|
|
| |
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: 131127
|
| |
|
|
|
|
| |
Also some -fdelayed-template-parsing test refactoring.
llvm-svn: 131113
|
| |
|
|
|
|
| |
unions. Fixes PR8326.
llvm-svn: 131109
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
when POSIXLY_COMPLIANT is set.
- Patch by Dave Vasilevsky!
llvm-svn: 131084
|
| |
|
|
|
|
| |
rdar://problem/9391966
llvm-svn: 131080
|
| |
|
|
| |
llvm-svn: 131077
|
| |
|
|
|
|
| |
Necessary to parse MFC code.
llvm-svn: 131076
|
| |
|
|
|
|
|
| |
complete destructors for abstract classes unless the destructor is virtual
and thus needs to be in the vtable.
llvm-svn: 131068
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bit by allowing __weak and __strong to be added/dropped as part of
implicit conversions (qualification conversions in C++). A little
history: GCC lets one add/remove/change GC qualifiers just about
anywhere, implicitly. Clang did roughly the same before, but we
recently normalized the semantics of qualifiers across the board to
get a semantics that we could reason about (yay). Unfortunately, this
tightened the screws a bit too much for GC qualifiers, where it's
common to add/remove these qualifiers at will.
Overall, we're still in better shape than we were before: we don't
permit directly changing the GC qualifier (e.g., __weak -> __strong),
so type safety is improved. More importantly, we're internally
consistent in our handling of qualifiers, and the logic that allows
adding/removing GC qualifiers (but not adding/removing address
spaces!) only touches two obvious places.
Fixes <rdar://problem/9402499>.
llvm-svn: 131065
|
| |
|
|
|
|
|
| |
type, so long as it is known to have a constant initializer and the
class type is a POD class. Fixes <rdar://problem/9306265>.
llvm-svn: 131060
|
| |
|
|
| |
llvm-svn: 131057
|
| |
|
|
|
|
|
|
|
|
|
| |
extension.
http://msdn.microsoft.com/en-us/library/hzc8ytsz(v=VS.100).aspx
Microsoft doc claims this is a C++/CLI feature but it is really always enabled.
This removes 2 error when parsing MFC code with clang.
llvm-svn: 131051
|
| |
|
|
| |
llvm-svn: 131050
|
| |
|
|
|
|
| |
errors for additional uses of this invalid typedef.
llvm-svn: 131043
|
| |
|
|
|
|
|
|
| |
any names that aren't in the appropriate identifier namespaces. Fixes
an embarrassing bug where we give a redefinition error due to an
Objective-C category (<rdar://problem/9388207>).
llvm-svn: 131036
|