| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Makes it easier to track what tests are missing....
llvm-svn: 253131
|
|
|
|
|
|
| |
Improved tests as discussed in PR24580
llvm-svn: 253130
|
|
|
|
|
|
|
| |
These were implemented back in r244564. However, I forgot to update the
docs.
llvm-svn: 253128
|
|
|
|
|
|
|
|
|
| |
r233345 started being stricter about typedef names for linkage purposes
in non-visible modules, but broke languages without the ODR.
rdar://23527954
llvm-svn: 253123
|
|
|
|
|
|
|
| |
out the first missing target feature that's required and reword
the diagnostic accordingly.
llvm-svn: 253121
|
|
|
|
| |
llvm-svn: 253119
|
|
|
|
|
|
| |
features for calls.
llvm-svn: 253117
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
beyond value/repair
Several of these tests (the two deleted, and the one removal edit) were
relying on the optimizer to collapse things to test some frontend
feature. The tests were really old and features seemed amply covered by
other parts of the test suite, so I just removed them.
If anyone thinks they're valuable enough to keep/fix, we can play around
with that, for sure.
(inspired by r252872)
llvm-svn: 253114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
VisitReturnStmt would create a new block with including Dtors, so the Dtors created
in VisitCompoundStmts would be in an unreachable block.
Example:
struct S {
~S();
};
void f()
{
S s;
return;
}
void g()
{
S s;
}
Before this patch, f has one additional unreachable block containing just the
destructor of S. With this patch, both f and g have the same blocks.
Reviewers: krememek
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D13973
llvm-svn: 253107
|
|
|
|
|
|
|
|
|
| |
This reverts r243310, which is redundant as of r253102.
Conflicts:
lib/Driver/Tools.cpp
llvm-svn: 253104
|
|
|
|
| |
llvm-svn: 253099
|
|
|
|
| |
llvm-svn: 253081
|
|
|
|
| |
llvm-svn: 253074
|
|
|
|
| |
llvm-svn: 253069
|
|
|
|
| |
llvm-svn: 253068
|
|
|
|
| |
llvm-svn: 253066
|
|
|
|
|
|
|
|
|
|
| |
When linking against text-based dynamic library SDKs the library name of a
framework has now more than one possible filename extensions. This fix tests for
both possible extensions (none, and .tbd).
This fixes rdar://problem/20609975
llvm-svn: 253060
|
|
|
|
|
|
|
|
| |
It has been reported that this test currently fails on some Power buildbots due to them adding a "signext" function attribute.
As that's not what we're checking here, slacken off the test a bit.
llvm-svn: 253055
|
|
|
|
|
|
| |
isExplicitInstantiationOrSpecialization, NFC.
llvm-svn: 253046
|
|
|
|
| |
llvm-svn: 253016
|
|
|
|
|
|
|
|
| |
While functions types are complete, they cannot be constructed.
This fixes PR25513.
llvm-svn: 253013
|
|
|
|
|
|
|
| |
actually hidden before we check its linkage. This avoids computing the linkage
"too early" for an anonymous struct with a typedef name for linkage.
llvm-svn: 253012
|
|
|
|
| |
llvm-svn: 253011
|
|
|
|
|
|
|
|
|
| |
the linkage of the enumeration. For enumerators of unnamed enumerations, extend
the -Wmodules-ambiguous-internal-linkage extension to allow selecting an
arbitrary enumerator (but only if they all have the same value, otherwise it's
ambiguous).
llvm-svn: 253010
|
|
|
|
|
|
| |
install destination of c-index-test and the libclang headers.
llvm-svn: 253001
|
|
|
|
| |
llvm-svn: 252991
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The ``disable_tail_calls`` attribute instructs the backend to not
perform tail call optimization inside the marked function.
For example,
int callee(int);
int foo(int a) __attribute__((disable_tail_calls)) {
return callee(a); // This call is not tail-call optimized.
}
Note that this attribute is different from 'not_tail_called', which
prevents tail-call optimization to the marked function.
rdar://problem/8973573
Differential Revision: http://reviews.llvm.org/D12547
llvm-svn: 252986
|
|
|
|
| |
llvm-svn: 252981
|
|
|
|
| |
llvm-svn: 252977
|
|
|
|
|
|
|
|
| |
targeting win32.
I will remove REQUIRES later.
llvm-svn: 252972
|
|
|
|
| |
llvm-svn: 252971
|
|
|
|
|
|
| |
due to ambiguity.
llvm-svn: 252967
|
|
|
|
| |
llvm-svn: 252961
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations in redeclaration lookup. A declaration is now visible to
lookup if:
* It is visible (not in a module, or in an imported module), or
* We're doing redeclaration lookup and it's externally-visible, or
* We're doing typo correction and looking for unimported decls.
We now support multiple modules having different internal-linkage or no-linkage
definitions of the same name for all entities, not just for functions,
variables, and some typedefs. As previously, if multiple such entities are
visible, any attempt to use them will result in an ambiguity error.
This patch fixes the linkage calculation for a number of entities where we
previously didn't need to get it right (using-declarations, namespace aliases,
and so on). It also classifies enumerators as always having no linkage, which
is a slight deviation from the C++ standard's definition, but not an observable
change outside modules (this change is being discussed on the -core reflector
currently).
This also removes the prior special case for tag lookup, which made some cases
of this work, but also led to bizarre, bogus "must use 'struct' to refer to type
'Foo' in this scope" diagnostics in C++.
llvm-svn: 252960
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DR407, the C++ standard doesn't really say how this should work. Here's what we
do (which is consistent with DR407 as far as I can tell):
* When performing name lookup for an elaborated-type-specifier, a tag
declaration hides a typedef declaration that names the same type.
* When performing any other kind of lookup, a typedef declaration hides
a tag declaration that names the same type.
In any other case where lookup finds both a typedef and a tag (that is, when
they name different types), the lookup will be ambiguous. If lookup finds a
tag and a typedef that name the same type, and finds anything else, the lookup
will always be ambiguous (even if the other entity would hide the tag, it does
not also hide the typedef).
llvm-svn: 252959
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This failed to solve the problem it was aimed at, and introduced just as many
issues as it resolved. Realistically, we need to deal with the possibility that
multiple modules might define different internal linkage symbols with the same
name, and this isn't a problem unless two such symbols are simultaneously
visible.
The case where two modules define equivalent internal linkage symbols is
handled by r252063: if lookup finds multiple sufficiently-similar entities from
different modules, we just pick one of them as an extension (but we keep them
separate).
llvm-svn: 252957
|
|
|
|
|
|
| |
From a patch by Nicholas Allegra!
llvm-svn: 252955
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In r244063, I had caused these builtins to call the same-named library
functions, __atomic_*_fetch_SIZE. However, this was incorrect: while
those functions are in fact supported by GCC's libatomic, they're not
documented by the spec (and gcc doesn't ever call them).
Instead, you're /supposed/ to call the __atomic_fetch_* builtins and
then redo the operation inline to return the final value.
Differential Revision: http://reviews.llvm.org/D14385
llvm-svn: 252920
|
|
|
|
|
|
|
|
| |
This option is used to cancel -mms-bitfields on the command line.
rdar://problem/15898553
llvm-svn: 252912
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Clang-side update, corresponding to D14577
Reviewers: rengolin
Subscribers: aemerson, cfe-commits, rengolin
Differential Revision: http://reviews.llvm.org/D14578
llvm-svn: 252904
|
|
|
|
|
|
| |
The C++ spec (3.6.1.3) says "The function `main` shall not be used within a program". This implies that it cannot recurse, so add the norecurse attribute to help the midend out a bit.
llvm-svn: 252902
|
|
|
|
|
|
|
|
| |
Last time, this caused two Windows buildbots and a single ARM buildbot to fail.
I XFAIL'd the failing test on win32,win64 machines in order to see if the ARM
buildbot complains again.
llvm-svn: 252901
|
|
|
|
|
|
| |
UDTs by moving a function definition out of an extern "C" block.
llvm-svn: 252900
|
|
|
|
| |
llvm-svn: 252890
|
|
|
|
|
|
| |
FunctionAttrs has just been taught how to infer 'norecurse'. Update clang tests for LLVM r252871.
llvm-svn: 252872
|
|
|
|
|
|
| |
emitted in the same place. NFC
llvm-svn: 252861
|
|
|
|
| |
llvm-svn: 252855
|
|
|
|
|
|
|
|
|
| |
This function permits the mangling of a C++ 'structor. Depending on the ABI and
the declaration, the declaration may contain more than one associated symbol for
a given declaration. This allows the consumer to retrieve all of the associated
symbols for the declaration the cursor points to.
llvm-svn: 252853
|
|
|
|
|
|
|
| |
This allows the return of a set of CXStrings from libclang. This is setup work
for an upcoming change to permit returning multiple mangled symbols.
llvm-svn: 252852
|
|
|
|
|
|
| |
The code snippets were not being displayed. This commit fixes the bug.
llvm-svn: 252849
|