| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 180603
|
| |
|
|
|
|
|
|
| |
Original commit message:
Fix a case in linkage computation that should check for single line extern "C".
llvm-svn: 180591
|
| |
|
|
|
|
| |
Thanks to Bill Wendling for the original testcase.
llvm-svn: 180586
|
| |
|
|
| |
llvm-svn: 180583
|
| |
|
|
|
|
|
|
|
|
| |
When we find a friend declaration we have to skip transparent contexts for doing
lookups, but we should not skip them when inserting the new decl if the lookup
found nothing.
Fixes PR15841.
llvm-svn: 180571
|
| |
|
|
| |
llvm-svn: 180263
|
| |
|
|
|
|
|
| |
C++98 mode. This improves on the previous diagnostic message of:
error: expected identifier or '{'
llvm-svn: 180076
|
| |
|
|
|
|
|
|
| |
statement in constexpr functions. Everything which doesn't require variable
mutation is also allowed as an extension in C++11. 'void' becomes a literal
type to support constexpr functions which return 'void'.
llvm-svn: 180022
|
| |
|
|
|
|
|
| |
different array elements, even if they're all constructed using the same
default constructor.
llvm-svn: 180017
|
| |
|
|
|
|
| |
Making the test introduced in r179962 resilient to being run on darwin10 hosts.
llvm-svn: 179992
|
| |
|
|
|
|
|
|
|
| |
C++1y, so stop adding the 'const' there. Provide a compatibility warning for
code relying on this in C++11, with a fix-it hint. Update our lazily-written
tests to add the const, except for those ones which were testing our
implementation of this rule.
llvm-svn: 179969
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Still to do here:
- we have a collection of syntactic accepts-invalids to diagnose
- support non-PODs in VLAs, including dynamic initialization /
destruction
- runtime checks (and throw std::bad_array_length) for bad bound
- support VLA capture by reference in lambdas
- properly support VLAs in range-based for (don't recompute bound)
llvm-svn: 179962
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a CXXDefaultInitExpr, analogous to CXXDefaultArgExpr, and use it both in
CXXCtorInitializers and in InitListExprs to represent a default initializer.
There's an additional complication here: because the default initializer can
refer to the initialized object via its 'this' pointer, we need to make sure
that 'this' points to the right thing within the evaluation.
llvm-svn: 179958
|
| |
|
|
|
|
| |
a trailing return type in that class's body.
llvm-svn: 179941
|
| |
|
|
|
|
| |
C++1y binary literals.
llvm-svn: 179883
|
| |
|
|
|
|
| |
TLS support.
llvm-svn: 179692
|
| |
|
|
|
|
| |
templates, from Alexander Zinenko!
llvm-svn: 179680
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently emit an error message when you try to use thread local
storage on targets that don't support it and testing C++11 thread
locals will trip this. We don't want to xfail the test for all darwin
hosts so add a quick hack to check for darwin10 and disable the
test based on that. Only checking darwin10 because anything earlier
is really old and I don't have a list of what other hosts don't
support tls handy.
Alternate suggestions welcome!
llvm-svn: 179671
|
| |
|
|
|
|
|
|
|
| |
type-dependent intermediate result in a postfix ++ pseudo-
object operation.
Test case by Tong Shen.
llvm-svn: 179637
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Add CapturedDecl to be the DeclContext for CapturedStmt, and perform semantic
analysis. Currently captures all variables by reference.
TODO: templates
Author: Ben Langmuir <ben.langmuir@intel.com>
Differential Revision: http://llvm-reviews.chandlerc.com/D433
llvm-svn: 179618
|
| |
|
|
|
|
| |
Patch by Halfdan Ingvarsson!
llvm-svn: 179598
|
| |
|
|
|
|
|
|
| |
references thereto.
Patch by Tong Shen!
llvm-svn: 179585
|
| |
|
|
|
|
| |
_Thread_local nor __thread.)
llvm-svn: 179517
|
| |
|
|
|
|
|
|
|
|
|
| |
fact be defined and used in another TU.
Reshuffle some test cases because we suppress -Wunused-variable after we've
emitted an error.
This fixes PR15558.
llvm-svn: 179138
|
| |
|
|
|
|
| |
Fixes rdar://13589856
llvm-svn: 179078
|
| |
|
|
|
|
| |
These checks are enabled with the -Wthread-safety-beta flag.
llvm-svn: 179046
|
| |
|
|
|
|
|
| |
more information to the notes. This information is already present on other
diagnostic messages that involves overloads.
llvm-svn: 178923
|
| |
|
|
|
|
|
|
|
|
| |
This removes a bit of patching that survived r178663. Without it we can produce
better a better error message for
const int a = 5;
static const int a;
llvm-svn: 178795
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Having these not be the same makes an easy to misuse API. We should audit the
uses and probably rename to something like
foo->hasExternalLinkage():
The c++ standard one. That is UniqueExternalLinkage or ExternalLinkage.
foo->hasUniqueExternalLinkage():
Is UniqueExternalLinkage.
foo->hasCogeGenExternalLinkage():
Is ExternalLinkage.
llvm-svn: 178768
|
| |
|
|
|
|
|
|
| |
Now that we don't have a semantic storage class, use the linkage.
Thanks to Bruce Stephens for reporting this.
llvm-svn: 178766
|
| |
|
|
|
|
|
|
| |
This test was exactly the opposite of what it should be. We should check if
there old decl has linkage (where it makes sense) and if the new decl has
the extern keyword.
llvm-svn: 178735
|
| |
|
|
|
|
|
|
|
| |
caching the linkage for a declaration before we set up its redeclaration chain,
when determining whether a declaration could be a redeclaration of something
from an unimported submodule. We actually want to look at the declaration as if
it were not a redeclaration here, so compute the linkage but don't cache it.
llvm-svn: 178733
|
| |
|
|
|
|
| |
declaration. Patch by Stephen Lin!
llvm-svn: 178698
|
| |
|
|
|
|
|
|
| |
smarts so that it doesn't approve of keywords and/or type names when it
knows (based on its flags) that those kinds of corrections are not
wanted.
llvm-svn: 178668
|
| |
|
|
| |
llvm-svn: 178554
|
| |
|
|
|
|
| |
case when [[clang::fallthrough]]; is used in a method of a local class.
llvm-svn: 178543
|
| |
|
|
|
|
|
| |
specifier for an enumeration. Also fix a crash-on-invalid if a non-dependent
name specifier is used to declare an enum template.
llvm-svn: 178502
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
We already avoided warning for
extern "C" const char *Version_string = "2.9";
now we also don't produce any warnings for
extern "C" {
extern const char *Version_string2 = "2.9";
}
llvm-svn: 178333
|
| |
|
|
|
|
|
| |
This covers a few cases where the class of a member pointer is not a
CXXRecordDecl.
llvm-svn: 178307
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This also relaxes the requirement on Windows that the member pointer
class type be a complete type (http://llvm.org/PR12070). We still ask
for a complete type to instantiate any templates (MSVC does this), but
if that fails we continue as normal, relying on any inheritance
attributes on the declaration.
Reviewers: rjmccall
CC: triton, timurrrr, cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D568
llvm-svn: 178283
|
| |
|
|
|
|
|
|
|
| |
The suggestion was already in the text of the note; this just adds the
actual fixit and the appropriate test cases.
Patch by Alexander Zinenko!
llvm-svn: 178274
|
| |
|
|
|
|
|
| |
typedef. Also don't warn on the _Atomic type specifier, just on the _Atomic
type qualifier.
llvm-svn: 178218
|
| |
|
|
|
|
| |
type qualifier.
llvm-svn: 178217
|
| |
|
|
|
|
| |
sugar for the _Atomic type specifier.
llvm-svn: 178210
|
| |
|
|
|
|
|
|
| |
<type_traits>.
Patch by me and Ryan Molden.
llvm-svn: 178111
|
| |
|
|
|
|
|
|
| |
uninstantiated exception specification when a special member within a class
template is both defaulted and given an exception specification on its first
declaration.
llvm-svn: 178103
|
| |
|
|
|
|
|
| |
declarations at any point. Patch by Alexander Zinenko, and
report by Richard Smith.
llvm-svn: 178098
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
returns consistent results with invalid types.
When Sema::RequireCompleteType() is given a class template
specialization type that then fails to instantiate, it returns
'true'. On subsequent invocations, it can return false. Make sure that
this difference doesn't change the result of
Sema::CompareReferenceRelationship, which is expected to remain stable
while we're checking an initialization sequence.
llvm-svn: 178088
|
| |
|
|
|
|
| |
class types.
llvm-svn: 177987
|
| |
|
|
|
|
| |
initialize a member of an anonymous union.
llvm-svn: 177941
|