]>
granicus.if.org Git - clang/log
Adrian Prantl [Thu, 17 Apr 2014 01:04:01 +0000 (01:04 +0000)]
Further simplify r206430.
rdar://problem/
16636569 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206434
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Thu, 17 Apr 2014 00:52:48 +0000 (00:52 +0000)]
Rename lib/Headers/module.map to module.modulemap
Don't install a file using the legacy spelling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206431
91177308 -0d34-0410-b5e6-
96231b3b80d8
Adrian Prantl [Thu, 17 Apr 2014 00:30:48 +0000 (00:30 +0000)]
Debug info: When collecting the parameters of C++ partial template
specializations collect all arguments and not just the ones from the
class template partial specialization from which this class template
specialization was instantiated. The debug info does not represent the
partial specialization otherwise and so specialized parameters would
go missing.
rdar://problem/
16636569 .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206430
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 16 Apr 2014 21:32:23 +0000 (21:32 +0000)]
Attempting to unbreak the MSVC 2012 build a second time.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206420
91177308 -0d34-0410-b5e6-
96231b3b80d8
John Thompson [Wed, 16 Apr 2014 21:03:41 +0000 (21:03 +0000)]
Added dump method for global module index.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206418
91177308 -0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Wed, 16 Apr 2014 20:44:17 +0000 (20:44 +0000)]
Handle -m32 for NetBSD/sparc64 correctly. Extend test case to also check
ARM, MIPS and i386 ABIs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206416
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 16 Apr 2014 20:10:16 +0000 (20:10 +0000)]
Revert "Move -fms-extensions predefined macros into InitPreprocessor"
This reverts commit r206413.
This was proposed before, but it's not clear if this is really a good
idea:
http://reviews.llvm.org/D3034
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206415
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 16 Apr 2014 19:59:42 +0000 (19:59 +0000)]
Attempting to unbreak the MSVC 2012 build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206414
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Wed, 16 Apr 2014 19:47:06 +0000 (19:47 +0000)]
Move -fms-extensions predefined macros into InitPreprocessor
If someone on Linux asks for -fms-extensions, there's no reason not to
define the feature test macros that MSVC defines.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206413
91177308 -0d34-0410-b5e6-
96231b3b80d8
Diego Novillo [Wed, 16 Apr 2014 19:02:35 +0000 (19:02 +0000)]
Fix check failure on hexagon targets.
This test was failing because there is no assembler for hexagon-elf on
this buildbot:
http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/10470
Fixed by adding -S to the driver invocation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206412
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 16 Apr 2014 18:45:32 +0000 (18:45 +0000)]
Fix indentation, NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206411
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 16 Apr 2014 18:32:51 +0000 (18:32 +0000)]
[objc] -[NSObject init] is documented to not do anything, don't warn if subclasses do not call [super init] on their initializers.
Part of rdar://
16568441
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206410
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Wed, 16 Apr 2014 18:32:42 +0000 (18:32 +0000)]
[objc] Consider new initializers inside @implementation when determining if the class
introduces new initializers.
Part of rdar://
16568441
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206409
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 16 Apr 2014 17:44:02 +0000 (17:44 +0000)]
More minor refactoring. Updated for const-correctness, moved another deleted function to be private, 0 -> nullptr and some style corrections. No functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206406
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 16 Apr 2014 17:20:26 +0000 (17:20 +0000)]
Minor cleanups for deleted functions to ensure they're a bit more robustly "deleted".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206404
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 16 Apr 2014 17:03:06 +0000 (17:03 +0000)]
Objective-C rewriter. Use _WIN64 instead of __LLP64__
to conditinalize on 64bit length in a generated meta-data.
// rdar://
16489050
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206402
91177308 -0d34-0410-b5e6-
96231b3b80d8
Diego Novillo [Wed, 16 Apr 2014 16:54:24 +0000 (16:54 +0000)]
Add support for optimization reports.
Summary:
This patch adds a new flag -Rpass=. The flag indicates the name
of the optimization pass that should emit remarks stating when it
made a transformation to the code.
This implements the design I proposed in:
https://docs.google.com/document/d/1FYUatSjZZO-zmFBxjOiuOzAy9mhHA8hqdvklZv68WuQ/edit?usp=sharing
Other changes:
- Add DiagnosticIDs::isRemark(). Use it in printDiagnosticOptions to
print "-R" instead of "-W" in the diagnostic message.
- In BackendConsumer::OptimizationRemarkHandler, get a SourceLocation
object out of the file name, line and column number. Use that location
in the call to Diags.Report().
- When -Rpass is used without debug info a note is emitted alerting
the user that they need to use -gline-tables-only -gcolumn-info to
get this information.
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D3226
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206401
91177308 -0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Wed, 16 Apr 2014 16:03:27 +0000 (16:03 +0000)]
InstrProf: Calculate a better function hash
The function hash should change when control flow changes. This patch
hashes the type of each AST node that affects counters, rather than just
counting how many there are. These types are combined into a small
enumerator that currently has 16 values.
The new hash algorithm packs the enums for consecutively visited types
into a `uint64_t`. In order to save space for new types, the types are
assumed to be 6-bit values (instead of 4-bit). In order to minimize
overhead for functions with little control flow, the `uint64_t` is used
directly as a hash if it never fills up; if it does, it's passed through
an MD5 context.
<rdar://problem/
16435801 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206397
91177308 -0d34-0410-b5e6-
96231b3b80d8
James Molloy [Wed, 16 Apr 2014 15:33:56 +0000 (15:33 +0000)]
[ARM64] Plumb in the -mfpu= flag.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206395
91177308 -0d34-0410-b5e6-
96231b3b80d8
James Molloy [Wed, 16 Apr 2014 15:33:48 +0000 (15:33 +0000)]
[ARM64] Allow the disabling of NEON and crypto instructions. Update tests to pass -target-feature +neon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206394
91177308 -0d34-0410-b5e6-
96231b3b80d8
James Molloy [Wed, 16 Apr 2014 15:06:20 +0000 (15:06 +0000)]
[ARM64] Fix up predefines, including adding big endian support to Targets.cpp
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206390
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 16 Apr 2014 13:16:19 +0000 (13:16 +0000)]
Minor formatting cleanups -- no functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206386
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Wed, 16 Apr 2014 12:26:54 +0000 (12:26 +0000)]
clang-format: Add special case to reduce indentaiton in streams.
This is similar to how we treat assignments and seems to be generally
desirable.
Before:
llvm::errs() <<
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa (
aaaaaaaaaaaaaaaaaaaaaaaaaaaa ,
aaaaaaaaaaaaaaaaaaaaaaaaaaaa );
After:
llvm::errs() <<
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa (
aaaaaaaaaaaaaaaaaaaaaaaaaaaa ,
aaaaaaaaaaaaaaaaaaaaaaaaaaaa );
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206384
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Wed, 16 Apr 2014 11:09:33 +0000 (11:09 +0000)]
Adding a move constructor (due to CopyOnWriteVector requiring move-only semantics) to appease MSVC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206374
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 16 Apr 2014 11:04:33 +0000 (11:04 +0000)]
Hopefully avoid a warning on some GCCs (but not all strangely,
preventing me from seeing it initially). GCC doesn't use the unused
attribute on members for anything, so while it works to suppress Clang's
warning for an unused private member, it adds a GCC warning for the
attribute. =/ Silence Clang's warning with a void cast in the
constructor instead which doesn't trigger any complaints from GCC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206373
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Sandiford [Wed, 16 Apr 2014 08:47:51 +0000 (08:47 +0000)]
Sema: Factor out argument range checks for builtin functions
No behavioural change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206364
91177308 -0d34-0410-b5e6-
96231b3b80d8
Evgeniy Stepanov [Wed, 16 Apr 2014 08:06:33 +0000 (08:06 +0000)]
Re-enable several builtins in non-gnu modes.
This is a partial revert of 183015.
By not recognizing things like _setjmp we lose (returns_twice) attribute on
them, which leads to incorrect code generation.
Fixes PR16138.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206362
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 16 Apr 2014 07:26:09 +0000 (07:26 +0000)]
-Wunreachable-code: refine recognition of unreachable "sigil" to cope with implicit casts in C++.
Fixes <rdar://problem/
16631033 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206360
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Wed, 16 Apr 2014 02:56:48 +0000 (02:56 +0000)]
Lex: Fix __has_feature(cxx_exceptions) for objective C++
At one point, -fexceptions was a synonym for -fcxx-exceptions. While
the driver options still enables cxx-exceptions by default, the cc1
flag is purely about exception tables and this doesn't account for
objective C exceptions. Because of this, checking for the
cxx_exceptions feature in objective C++ often gives the wrong answer.
The cxx_exceptions feature should be based on the -fcxx-exceptions cc1
flag, not -fexceptions. Furthermore, at some point the tests were
changed to use cc1 even though they were testing the driver behaviour.
We're better off testing both the driver and cc1 here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206352
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 16 Apr 2014 01:22:22 +0000 (01:22 +0000)]
threadSafety::SExprBuilder::BlockInfo: Non-static member initializer is unavailable. Use default constructor instead.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206347
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 16 Apr 2014 01:22:07 +0000 (01:22 +0000)]
Reformat.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206346
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Wed, 16 Apr 2014 01:21:53 +0000 (01:21 +0000)]
threadSafety::CopyOnWriteVector: Use LLVM_DELETED_FUNCTION here due to missing functionality of msc17.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206345
91177308 -0d34-0410-b5e6-
96231b3b80d8
John Thompson [Wed, 16 Apr 2014 00:07:06 +0000 (00:07 +0000)]
Fixed problem with exclude header. The exclude header argument needs to be relative to the module.map file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206342
91177308 -0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Tue, 15 Apr 2014 23:58:06 +0000 (23:58 +0000)]
Fix build after r206338
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206341
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 15 Apr 2014 23:47:53 +0000 (23:47 +0000)]
Make -Wabsolute-value C++-aware.
Warn on std::abs() with unsigned argument.
Suggest std::abs as replacement for the C absolute value functions.
Suggest C++ headers if the specific std::abs overload is not found.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206340
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 15 Apr 2014 23:29:04 +0000 (23:29 +0000)]
Format.cpp: Don't use initializer list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206339
91177308 -0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Tue, 15 Apr 2014 23:23:19 +0000 (23:23 +0000)]
Thread Safety Analysis: rewrite SSA pass to use the new SExpr and CFG
traversal system. The new pass is still undergoing testing; no change in
functionality.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206338
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Tue, 15 Apr 2014 21:34:12 +0000 (21:34 +0000)]
[Allocator] Make the ContentCache object actually carry the 8-byte
alignment constraint rather than using the allocator function's over
alignment "feature". This was the only use of the "feature" which I plan
to remove next. =] Attaching the alignment to the type seems cleaner and
more principled anyways.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 15 Apr 2014 21:22:35 +0000 (21:22 +0000)]
CodeGen: Emit warnings for out of date profile data during PGO
This adds a warning that triggers when profile data doesn't match for
the source that's being compiled with -fprofile-instr-use=. This fires
only once per translation unit, as warning on every mismatched
function would be quite noisy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206322
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 15 Apr 2014 20:37:41 +0000 (20:37 +0000)]
CodeGen: Remove a comment that isn't in the right place
This comment also appears elsewhere where it actually makes sense, and
it's just confusing here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 15 Apr 2014 20:27:15 +0000 (20:27 +0000)]
Move comment back to being next to the thing it's describing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206320
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 15 Apr 2014 20:12:41 +0000 (20:12 +0000)]
AST: Respect alignment attributes on typedef'd arrays
When instantiating an array that has an alignment attribute on it, we
were looking through the array type and only considering the element
type for the resulting alignment. We need to make sure we take the
array's requirements into account too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206317
91177308 -0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Tue, 15 Apr 2014 19:09:58 +0000 (19:09 +0000)]
[ARM64] Update tests to reflect the change of the default CPU in llvm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206314
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Tue, 15 Apr 2014 18:16:25 +0000 (18:16 +0000)]
Honour -ivfsoverlay in ASTUnit to match clang
This allows code indexing, etc. to use the VFS in the same way as the
compiler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206309
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Tue, 15 Apr 2014 17:19:26 +0000 (17:19 +0000)]
Replace push_back()s by initializer list for shorter and cleaner code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206304
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Tue, 15 Apr 2014 16:57:53 +0000 (16:57 +0000)]
Add test case for r206302
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206303
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Tue, 15 Apr 2014 16:57:05 +0000 (16:57 +0000)]
Add support for CUDA __launch_bounds__ attribute to CodeGen.
Sema does have a CUDALaunchBoundsAttr, but CodeGen was doing nothing with it.
This change translates CUDALaunchBoundsAttr to maxntidx and minctasm
metadata, which NVPTX then translates to the correct PTX directives.
Patch by Manjunath Kudlur.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206302
91177308 -0d34-0410-b5e6-
96231b3b80d8
Duncan P. N. Exon Smith [Tue, 15 Apr 2014 16:27:43 +0000 (16:27 +0000)]
verify-di: Call debug info verifier from clang
This is paired with a patch to LLVM that creates a separate pass for
verifying debug info.
<rdar://problem/
15500563 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206301
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Tue, 15 Apr 2014 16:24:50 +0000 (16:24 +0000)]
Fix a comment to match the implementation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206298
91177308 -0d34-0410-b5e6-
96231b3b80d8
Tim Northover [Tue, 15 Apr 2014 14:55:11 +0000 (14:55 +0000)]
ARM64: track alignment padding registers on AAPCS targets
This implements clause C.8 of the AAPCS in the front-end, so that Clang
accurately knows when the registers run out and it has to insert padding before
the stack objects begin.
PR19432.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206296
91177308 -0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Tue, 15 Apr 2014 14:52:43 +0000 (14:52 +0000)]
Fix assertion when breaking string literals with tab characters.
Summary: Fixes http://llvm.org/PR19368
Reviewers: djasper, klimek
Reviewed By: klimek
CC: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D3379
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206295
91177308 -0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 15 Apr 2014 14:44:55 +0000 (14:44 +0000)]
Mark clang/test/Index/pch-with-errors.c as XFAIL:mingw for now. Investigating.
This has been failing since r206202.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206294
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fraser Cormack [Tue, 15 Apr 2014 11:38:29 +0000 (11:38 +0000)]
Allow address space qualifiers on OpenCL array parameters
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206275
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nikola Smiljanic [Tue, 15 Apr 2014 11:30:15 +0000 (11:30 +0000)]
PR19178 __is_constructible returns true for abstract types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206273
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 15 Apr 2014 09:54:30 +0000 (09:54 +0000)]
clang-format: Understand proto text format without commas.
Also removed spaces before colons as they don't seem to be used
frequently.
Before:
optional int32 b = 2
[(foo_options) = {
aaaaaaaaaaaaaaaaaaa : 123
bbbbbbbbbbbbbbbbbbbbbbbb :
"baz"}];
After:
optional int32 b = 2 [(foo_options) = {
aaaaaaaaaaaaaaaaaaa : 123,
bbbbbbbbbbbbbbbbbbbbbbbb :"baz"}];
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206269
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 15 Apr 2014 09:54:24 +0000 (09:54 +0000)]
x
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206268
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fraser Cormack [Tue, 15 Apr 2014 08:59:09 +0000 (08:59 +0000)]
Test commit: minor formatting
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206264
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 15 Apr 2014 08:49:21 +0000 (08:49 +0000)]
clang-format: Basic support for C++1y.
Before:
int bi{1 '000' 000};
After:
int bi{1'000'000};
This fixes llvm.org/PR19342.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206263
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 15 Apr 2014 08:28:06 +0000 (08:28 +0000)]
clang-format: Early cut-off for inlining nested blocks.
Specifically, for a nested block or lambda, don't try to put the single
statement body inline, if it exceeds the column limit.
This should not change any observable behavior (as those would never
have led to the 'best' solution), but significantly speeds up formatting
time.
This fixes llvm.org/PR18761. Formatting time goes down from ~100s to a
few ms.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 15 Apr 2014 08:13:47 +0000 (08:13 +0000)]
clang-format: Cache results of formatting nested blocks.
This somewhat improves the performance problem reported in
llvm.org/PR18761. No other behavior changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206258
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 15 Apr 2014 05:51:25 +0000 (05:51 +0000)]
AST: Elaborated type specifier mangling occurs before nested-name
The Ts/Tu/Te manglings should occur before the nested-name's N.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206247
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 15 Apr 2014 01:19:35 +0000 (01:19 +0000)]
Partial revert of r206229, to get the build bots green again.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 15 Apr 2014 01:06:38 +0000 (01:06 +0000)]
Fix typo from r206232
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206234
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 15 Apr 2014 00:57:50 +0000 (00:57 +0000)]
Fix a bad interaction between -Wtautological-overlap-compare and delayed
diagnostics which caused delayed diagnostics on dead paths to be emitted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206232
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Tue, 15 Apr 2014 00:50:54 +0000 (00:50 +0000)]
CodeGen: Handle CapturedStmt in instrumentation based profiling
CapturedStmt was being ignored by instrumentation based profiling, and
its counters attributed to the containing function. Instead, we need
to treat this as a top level entity, like we do with blocks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206231
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 15 Apr 2014 00:36:39 +0000 (00:36 +0000)]
Fixing a typo, updating the diagnostic wording and logic based on post-commit review feedback. Amends r206186.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206229
91177308 -0d34-0410-b5e6-
96231b3b80d8
Quentin Colombet [Tue, 15 Apr 2014 00:27:35 +0000 (00:27 +0000)]
[Driver][ARM64] Make sure the default CPU is passed to the assembler.
<rdar://problem/
16573920 >
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206227
91177308 -0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Mon, 14 Apr 2014 23:49:17 +0000 (23:49 +0000)]
Fix warning in ms-x86-vtordisp test case
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206224
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 14 Apr 2014 23:47:48 +0000 (23:47 +0000)]
Ensure we evaluate VLA bounds if a variably-modified type is used as the
argument to __builtin_va_arg. Patch by Rahul Jain, some test massaging and
IR emission order changes by me.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206223
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 14 Apr 2014 22:30:21 +0000 (22:30 +0000)]
Make sure these two files are distinct, or else the modules system may, on certain file systems, treat them as if they were the same file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206221
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Mon, 14 Apr 2014 22:12:44 +0000 (22:12 +0000)]
Add module name and module map file to -module-file-info
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206217
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 14 Apr 2014 21:00:40 +0000 (21:00 +0000)]
PR19415: Converting 'constexpr' to 'const' in a non-static data member can fail
if the member is already 'const'. Don't assert in that case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206205
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 14 Apr 2014 20:23:58 +0000 (20:23 +0000)]
PR19411: Walk lexical parents, not semantic parents, when determining whether a
DeclContext is (lexically) within a C language linkage specification.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206204
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Mon, 14 Apr 2014 18:50:28 +0000 (18:50 +0000)]
Fix find command in test/Modules/prune.m broken by r206201
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206203
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Mon, 14 Apr 2014 18:21:04 +0000 (18:21 +0000)]
Add clang:: qualifier back to Module
Apparently this was required by some compilers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206202
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Mon, 14 Apr 2014 18:00:01 +0000 (18:00 +0000)]
Allow multiple modules with the same name to coexist in the module cache
To differentiate between two modules with the same name, we will
consider the path the module map file that they are defined by* part of
the ‘key’ for looking up the precompiled module (pcm file).
Specifically, this patch renames the precompiled module (pcm) files from
cache-path/<module hash>/Foo.pcm
to
cache-path/<module hash>/Foo-<hash of module map path>.pcm
In addition, I’ve taught the ASTReader to re-resolve the names of
imported modules during module loading so that if the header search
context changes between when a module was originally built and when it
is loaded we can rebuild it if necessary. For example, if module A
imports module B
first time:
clang -I /path/to/A -I /path/to/B ...
second time:
clang -I /path/to/A -I /different/path/to/B ...
will now rebuild A as expected.
* in the case of inferred modules, we use the module map file that
allowed the inference, not the __inferred_module.map file, since the
inferred file path is the same for every inferred module.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206201
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 14 Apr 2014 16:44:26 +0000 (16:44 +0000)]
Properly diagnose Microsoft __declspec attributes which have optional argument lists when the arguments are elided. eg)
__declspec(deprecated()) // error
__declspec(deprecated) // OK
__declspec(deprecated("")) // OK
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206191
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 14 Apr 2014 16:34:29 +0000 (16:34 +0000)]
OnDiskHashTable: Make the iterable version separate.
Currently the on disk hash table's key_iterator and data_iterator make
the assumption that the table data starts exactly four bytes after the
base of the table. This happens to be true for all of the tables we
currently iterate over, but not for all of the OnDiskHashTables we
currently use. For example, key_ and data_iterator would iterate over
meaningless data if they were used on the hash tables in PTHLexer.
We make the API safer by breaking this into two types. One doesn't
have the iterators, and the other must be told where the payload
starts.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206189
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Mon, 14 Apr 2014 16:34:19 +0000 (16:34 +0000)]
OnDiskHashTable: clang-format and consistent naming
No functional change. Style cleanups in OnDiskChainedHashTable in
preparation for some other changes here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206188
91177308 -0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 14 Apr 2014 16:03:22 +0000 (16:03 +0000)]
Properly diagnose standard C++ attributes which have optional argument lists when the arguments are elided. eg)
[[deprecated()]] // error
[[deprecated]] // OK
[[deprecated("")]] // OK
[[gnu::deprecated()]] // OK
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206186
91177308 -0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Mon, 14 Apr 2014 13:51:21 +0000 (13:51 +0000)]
Add support for named values in the parser.
Summary: Add support for named values in the parser.
Reviewers: pcc
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D3276
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206176
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 14 Apr 2014 13:15:29 +0000 (13:15 +0000)]
clang-format: Fix regression caused by r206165.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206173
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 14 Apr 2014 12:50:02 +0000 (12:50 +0000)]
clang-format: Fix incorrect &&-detection in macros.
Before:
#define A(a, b) (a &&b)
After:
#define A(a, b) (a && b)
This fixes llvm.org/PR19343.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206165
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 14 Apr 2014 12:11:07 +0000 (12:11 +0000)]
clang-format: Improve array literal formatting fix in r206161.
Instead of choosing based on the number of elements, simply respect the
user's choice of where to wrap array literals.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206162
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 14 Apr 2014 12:05:05 +0000 (12:05 +0000)]
clang-format: With ColumnLimit=0, keep short array literals on a line.
Before:
NSArray* a = [[NSArray alloc] initWithArray:@[
@"a"
]
copyItems:YES];
After:
NSArray* a = [[NSArray alloc] initWithArray:@[ @"a" ]
copyItems:YES];
This fixed llvm.org/PR19080.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206161
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 14 Apr 2014 11:08:45 +0000 (11:08 +0000)]
clang-format: Don't allow hanging indentation for operators on new lines
Before:
if (
aaaaaaaa &&
bbbbbbbbbbbbbbb // need to wrap
==
cccccccccccccc ) ...
After:
if (
aaaaaaaa
&&
bbbbbbbbbbbbbbb // need to wrap
==
cccccccccccccc ) ...
The same rule has already be implemented for BreakBeforeBinaryOperators
set to false in r205527.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206159
91177308 -0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Mon, 14 Apr 2014 09:14:11 +0000 (09:14 +0000)]
Format code around VCS conflict markers.
Now correctly formats:
{
int a;
void f() {
callme(some(parameter1,
<<<<<<< text by the vcs
parameter2),
||||||| text by the vcs
parameter2),
parameter3,
======= text by the vcs
parameter2, parameter3),
>>>>>>> text by the vcs
otherparameter);
}
}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206157
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 14 Apr 2014 08:15:20 +0000 (08:15 +0000)]
clang-format: Improve formatting of annotated variables.
Before:
bool
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(
aaaaaaaaaaaa ) =
aaaaaaaa ::
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ;
After:
bool
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa GUARDED_BY(
aaaaaaaaaaaa ) =
aaaaaaaa ::
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206155
91177308 -0d34-0410-b5e6-
96231b3b80d8
Serge Pavlov [Sun, 13 Apr 2014 16:52:03 +0000 (16:52 +0000)]
Improve error recovery around colon.
Parse of nested name spacifier is modified so that it properly recovers
if colon is mistyped as double colon in case statement.
This patch fixes PR15133.
Differential Revision: http://llvm-reviews.chandlerc.com/D2870
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206135
91177308 -0d34-0410-b5e6-
96231b3b80d8
Logan Chien [Sun, 13 Apr 2014 16:08:24 +0000 (16:08 +0000)]
Fix diagnostics for C-style cast to function type.
If the C-style type cast is applied to the overloaded
function and the destination type is function type,
then Clang will crash with assertion failure. For example,
void foo(int);
void foo(int, int);
void bar() {
typedef void (ft)(int);
ft p = (ft)foo;
}
In this case, the overloaded function foo will be cast to
a function type, which should be considered as an error.
But, unfortunately, since the function resolution is using
canonical type, the matched function will be returned, and
result in SEGV.
This patch fixes this issue by removing the assertion and
add some error diagnostics as the one in static_cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206133
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 13 Apr 2014 08:15:50 +0000 (08:15 +0000)]
MS ABI: Bitfields FielDecls only align if they allocate
Don't consider a __declspec(align) on a bitfield's declaration if it didn't
allocate any underlying storage.
This fixes PR19414.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206132
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 13 Apr 2014 04:31:48 +0000 (04:31 +0000)]
PR19339: Disambiguate lambdas with init-captures from designated initializers
properly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206128
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 13 Apr 2014 02:29:55 +0000 (02:29 +0000)]
[-fms-extensions] Add tests for __FUNCDNAME__
__FUNCDNAME__ was introduced way back in r194181 but I forgot to add
these tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206125
91177308 -0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Sun, 13 Apr 2014 02:27:32 +0000 (02:27 +0000)]
MS ABI: #pragma vtordisp(0) only disables new vtordisps
Previously, it was believed that #pragma vtordisp(0) would prohibit the
generation of any and all vtordisps.
In actuality, it only disables the generation of additional vtordisps.
This fixes PR19413.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206124
91177308 -0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 13 Apr 2014 00:40:32 +0000 (00:40 +0000)]
Tests for DR501-525.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206123
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 12 Apr 2014 15:42:48 +0000 (15:42 +0000)]
Replace llvm::array_endof with C++11's std::end.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206111
91177308 -0d34-0410-b5e6-
96231b3b80d8
Hal Finkel [Sat, 12 Apr 2014 11:50:34 +0000 (11:50 +0000)]
Fix test/Modules/cxx-irgen.cpp for PPC64
Target ABI code might add signext to the return types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206107
91177308 -0d34-0410-b5e6-
96231b3b80d8
Yunzhong Gao [Sat, 12 Apr 2014 02:25:32 +0000 (02:25 +0000)]
Add description about the __is_identifier() macro
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206099
91177308 -0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sat, 12 Apr 2014 00:54:06 +0000 (00:54 +0000)]
CodeGen: Test instrumentation based profiling of templates
Make sure that templates are handled correctly by profile
instrumentation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206091
91177308 -0d34-0410-b5e6-
96231b3b80d8
Warren Hunt [Sat, 12 Apr 2014 00:20:50 +0000 (00:20 +0000)]
[MS-ABI] Fix warning introduced in r206087
No functional change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206090
91177308 -0d34-0410-b5e6-
96231b3b80d8