| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 209322
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Naming the destructor using a typedef-name for the class-name is
well-formed.
This fixes PR19620.
Reviewers: rsmith, doug.gregor
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D3583
llvm-svn: 209319
|
| |
|
|
|
|
|
|
|
| |
Make better diagnostic produced by erroneous switch statement.
It fixes PR19022.
Differential Revision: http://reviews.llvm.org/D3137
llvm-svn: 209302
|
| |
|
|
| |
llvm-svn: 209289
|
| |
|
|
|
|
|
|
|
| |
Also flesh out missing tests, improve diagnostic QOI and fix a couple of corner
cases found in the process.
Fixes PR10606.
llvm-svn: 209276
|
| |
|
|
|
|
|
|
| |
the return type is already that.
rdar://16961577
llvm-svn: 209264
|
| |
|
|
| |
llvm-svn: 209260
|
| |
|
|
| |
llvm-svn: 209255
|
| |
|
|
| |
llvm-svn: 209229
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a testcase for r209227, a change in LLVM that automatically sets
visibility to default when the linkage is changed to local (rather than
asserting).
What this testcase triggers is hard to reproduce otherwise: the
`GlobalValue` is created (with non-local linkage), the visibility is set
to hidden, and then the linkage is set to local.
PR19760
llvm-svn: 209228
|
| |
|
|
|
|
|
|
|
|
|
| |
This catches issues like:
if ((x & 8) == 4) { ... }
if ((x | 4) != 3) { ... }
Patch by Anders Rönnholm!
llvm-svn: 209221
|
| |
|
|
| |
llvm-svn: 209218
|
| |
|
|
|
|
|
|
|
|
| |
This is a GNU attribute that causes calls within the attributed function
to be inlined where possible. It is implemented by giving such calls the
alwaysinline attribute.
Differential Revision: http://reviews.llvm.org/D3816
llvm-svn: 209217
|
| |
|
|
|
|
|
| |
Based on a patch by jfcaron3@gmail.com!
PR19806
llvm-svn: 209215
|
| |
|
|
|
|
|
|
|
|
|
| |
For targeting i686-msvc, declarations are seen as thiscall like;
void (template_test::S::*)(const int &) __attribute__((thiscall))
void (template_test::S::*)(int) __attribute__((thiscall))
It didn't affect x86_64-msvc.
llvm-svn: 209212
|
| |
|
|
|
|
|
|
| |
part of their subject definition. FunctionTemplateDecls are not what the attribute appertains to in the first place -- it attaches to the underlying FunctionDecl.
The attribute emitter was using FunctionTemplate to map the diagnostic to "functions or methods", but that isn't a particularly clear diagnostic in these cases anyway (since they do not apply to ObjC methods). Updated the attribute emitter to remove custom logic for FunctionTemplateDecl, and updated the test cases for the change in diagnostic wording.
llvm-svn: 209209
|
| |
|
|
| |
llvm-svn: 209196
|
| |
|
|
|
|
| |
classes is a template argument.
llvm-svn: 209190
|
| |
|
|
| |
llvm-svn: 209186
|
| |
|
|
|
|
|
| |
This diagnostic is now controlled solely by -no-ns-alloc-error thus matching
the original intended behaviour.
llvm-svn: 209184
|
| |
|
|
|
|
|
|
|
| |
behavior on mismatch. The AutoUpgrader will drop incompatible debug info
any way and also emit a warning diagnostic for it.
rdar://problem/16926122
llvm-svn: 209182
|
| |
|
|
| |
llvm-svn: 209180
|
| |
|
|
| |
llvm-svn: 209175
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The -no-ns-alloc-error migration option now causes the diagnostic to be ignored
completely. If this isn't desired, the error can be downgraded to a warning
using the usual -Wno-error=arcmt-ns-alloc.
Note that we can't use -verify right now on this test because
VerifyDiagnosticConsumer gets confused by multiple SourceManager instances,
which is presumably the reason it was XFAILed in the first place and why the
regression wasn't detected. We'll grep instead for now.
llvm-svn: 209172
|
| |
|
|
|
|
|
|
|
| |
Also adding a variable to the test, so release bots match %1.
This should also calm the gdb buildbot.
.
llvm-svn: 209171
|
| |
|
|
|
|
|
|
|
| |
This is a GNU attribute that allows split stacks to be turned off on a
per-function basis.
Differential Revision: http://reviews.llvm.org/D3817
llvm-svn: 209167
|
| |
|
|
|
|
|
|
| |
declaration of that entity in from one of those modules, keep track of the fact
that we've not completed the redeclaration chain yet so that we can pull the
remaining declarations in from the other module if they're needed.
llvm-svn: 209161
|
| |
|
|
| |
llvm-svn: 209157
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch implements global named registers in Clang, lowering to the just
created intrinsics in LLVM (@llvm.read/write_register). A new type of LValue
had to be created (Register), which just adds support to carry the metadata
node containing the name of the register. Two new methods to emit loads and
stores interoperate with another to emit the named metadata node.
No guarantees are being made and only non-allocatable global variable named
registers are being supported. Local named register support is unchanged.
llvm-svn: 209149
|
| |
|
|
|
|
| |
this test probably should not have been XFAILed everywhere regardless. The test passes on Windows with MSVC 12.
llvm-svn: 209148
|
| |
|
|
|
|
|
| |
We only need them on the dllimport.cpp test to make sure that we emit code
for available_externaly functions, and don't inline the IR.
llvm-svn: 209145
|
| |
|
|
|
|
| |
to the appropriate diagnostic wording.
llvm-svn: 209140
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
FileManager::invalidateCache is not safe to call when there may be
existing references to the file. What module load failure needs is
to refresh so stale stat() info isn't stored.
This may be the last user of invalidateCache; I'll take a look and
remove it if possible in a future commit.
This caused a use-after-free error as well as a spurious error message
that a module was "found in both 'X.pcm' and 'X.pcm'" in some cases.
llvm-svn: 209138
|
| |
|
|
|
|
|
|
| |
should be failing. The original commit which XFAILed this was r111581, which suggested something was wrong with file remapping, but that may have been subsequently fixed.
Removing the XFAIL, but will watch the build bots to see if any go red because of this. Local testing on Windows succeeds.
llvm-svn: 209130
|
| |
|
|
| |
llvm-svn: 209128
|
| |
|
|
|
|
| |
Patch by Pedro Ferreira!
llvm-svn: 209127
|
| |
|
|
| |
llvm-svn: 209124
|
| |
|
|
|
|
|
|
|
|
| |
and requires internal padding
When we were padding a struct to avoid splitting it between registers and
the stack, we were throwing away the type which the argument should be coerced
to.
llvm-svn: 209122
|
| |
|
|
|
|
| |
This is necessary to reduce staging times on parallel build systems.
llvm-svn: 209120
|
| |
|
|
|
|
|
| |
Windows on ARM expects ARMv8 (restricted IT) conditional instructions only.
Force enable the restricted IT mode via the backend option when targeting WoA.
llvm-svn: 209086
|
| |
|
|
|
|
| |
bug was obvious from inspection, figuring out a way to test it was... less so.
llvm-svn: 209060
|
| |
|
|
|
|
|
|
| |
messes up the PCH file.
rdar://16941811
llvm-svn: 209059
|
| |
|
|
|
|
| |
conversion operators (the comparison could claim that two conversion operators are both better than each other). Actually implement DR495, rather than passing its test by chance because the declarations happened to be in the "lucky" order.
llvm-svn: 209054
|
| |
|
|
|
|
|
|
|
| |
The conventional form is '<action> to silence this warning'.
Also call the diagnostic an 'issue' rather than a 'message' because the latter
term is more widely used with reference to message expressions.
llvm-svn: 209052
|
| |
|
|
| |
llvm-svn: 209047
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ensure that querying the first declaration for its most recent declaration
checks for redeclarations from the imported module.
This works as follows:
* The 'most recent' pointer on a canonical declaration grows a pointer to the
external AST source and a generation number (space- and time-optimized for
the case where there is no external source).
* Each time the 'most recent' pointer is queried, if it has an external source,
we check whether it's up to date, and update it if not.
* The ancillary data stored on the canonical declaration is allocated lazily
to avoid filling it in for declarations that end up being non-canonical.
We'll still perform a redundant (ASTContext) allocation if someone asks for
the most recent declaration from a decl before setPreviousDecl is called,
but such cases are probably all bugs, and are now easy to find.
Some finessing is still in order here -- in particular, we use a very general
mechanism for handling the DefinitionData pointer on CXXRecordData, and a more
targeted approach would be more compact.
Also, the MayHaveOutOfDateDef mechanism should now be expunged, since it was
addressing only a corner of the full problem space here. That's not covered
by this patch.
Early performance benchmarks show that this makes no measurable difference to
Clang performance without modules enabled (and fixes a major correctness issue
with modules enabled). I'll revert if a full performance comparison shows any
problems.
llvm-svn: 209046
|
| |
|
|
|
|
|
|
|
|
| |
Now that llvm cannot represent alias cycles, we have to diagnose erros just
before trying to close the cycle. This degrades the errors a bit. The real
solution is what it was before: if we want to provide good errors for these
cases, we have to be able to find a clang level decl given a mangled name
and produce the error from Sema.
llvm-svn: 209008
|
| |
|
|
|
|
|
|
| |
If `-shared` is specified, pull in a PIC-version of the profile runtime,
which was added to compiler-rt in r208947. I'm hoping this will get the
bots on my side.
llvm-svn: 208948
|
| |
|
|
|
|
|
| |
declaration merging in modules is unable to find them and we get bogus errors
and even crashes.
llvm-svn: 208944
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Shared objects are fairly broken for InstrProf right now -- a follow-up
commit in compiler-rt will fix the rest of this.
The main problem here is that at link time, profile data symbols in the
shared object might get used instead of symbols from the main
executable, creating invalid profile data sections.
<rdar://problem/16918688>
llvm-svn: 208939
|