]> granicus.if.org Git - clang/log
clang
10 years agoUse the simpler version of llvm::sys::fs::remove when possible.
Rafael Espindola [Fri, 10 Jan 2014 21:32:14 +0000 (21:32 +0000)]
Use the simpler version of llvm::sys::fs::remove when possible.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198957 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDowngrade bogus ExtWarn on duplicate 'friend' specifier to a Warning, and add a
Richard Smith [Fri, 10 Jan 2014 21:27:55 +0000 (21:27 +0000)]
Downgrade bogus ExtWarn on duplicate 'friend' specifier to a Warning, and add a
Warning for a duplicate 'constexpr' specifier.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198956 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Model getters of known-@synthesized Objective-C properties.
Jordan Rose [Fri, 10 Jan 2014 20:06:06 +0000 (20:06 +0000)]
[analyzer] Model getters of known-@synthesized Objective-C properties.

...by synthesizing their body to be "return self->_prop;", with an extra
nudge to RetainCountChecker to still treat the value as +0 if we have no
other information.

This doesn't handle weak properties, but that's mostly correct anyway,
since they can go to nil at any time. This also doesn't apply to properties
whose implementations we can't see, since they may not be backed by an
ivar at all. And finally, this doesn't handle properties of C++ class type,
because we can't invoke the copy constructor. (Sema has actually done this
work already, but the AST it synthesizes is one the analyzer doesn't quite
handle -- it has an rvalue DeclRefExpr.)

Modeling setters is likely to be more difficult (since it requires
handling strong/copy), but not impossible.

<rdar://problem/11956898>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198953 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC. Remove warning on mismatched methods
Fariborz Jahanian [Fri, 10 Jan 2014 19:27:21 +0000 (19:27 +0000)]
ObjectiveC. Remove warning on mismatched methods
which may belong to unrelated classes. It was
primarily intended for miuse of @selector expression.
But warning is too noisy and will be issued when
an actual @selector is used. // rdar://15740134

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198952 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoImplement -m32 and -m64 with llvm::Triple functions.
Jakob Stoklund Olesen [Fri, 10 Jan 2014 15:25:23 +0000 (15:25 +0000)]
Implement -m32 and -m64 with llvm::Triple functions.

Don't repeat the 32 <-> 64 architecture mapping incompletely.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198943 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unexpected code completion handling from ConsumeToken()
Alp Toker [Fri, 10 Jan 2014 14:37:02 +0000 (14:37 +0000)]
Remove unexpected code completion handling from ConsumeToken()

With this change tok::code_completion is finally handled exclusively as a
special token kind like other tokens that need special treatment.

All callers have been updated to use the specific token consumption methods and
the parser has a clear idea the current token isn't special by the time
ConsumeToken() gets called, so this has been unreachable for some time.

ConsumeAnyToken() behaviour is unchanged and will continue to support
unexpected code completion as part of the special token path.

This survived an amount of fuzzing and validation, but please ping the list if
you hit a code path that previously relied on the old unexpected handler and
now asserts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198942 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoEnable -fuse-init-array for all AArch64 ELF targets by default, not just linux.
Kristof Beyls [Fri, 10 Jan 2014 13:44:34 +0000 (13:44 +0000)]
Enable -fuse-init-array for all AArch64 ELF targets by default, not just linux.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198940 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse 'w' instead of 'c' to represent the win32 mangling.
Rafael Espindola [Fri, 10 Jan 2014 13:42:17 +0000 (13:42 +0000)]
Use 'w' instead of 'c' to represent the win32 mangling.

This change was requested to avoid confusion if we ever support non windows
coff systems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198939 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate LangOpt descriptions
Alp Toker [Fri, 10 Jan 2014 11:19:45 +0000 (11:19 +0000)]
Update LangOpt descriptions

Based on recent discussions, attempt to provide a clearer distinction between
MicrosoftMode and MicrosoftExt. This still doesn't feel perfect but gives a
better idea which is which.

Also update the CPlusPlus11 description which got missed in r171367.

C++0x is dead, long live C++0x!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198936 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTryConsume parser cleanups
Alp Toker [Fri, 10 Jan 2014 11:19:30 +0000 (11:19 +0000)]
TryConsume parser cleanups

Also move some comments into the block they were meant to describe.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198935 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Slightly adapt line break in edge case.
Daniel Jasper [Fri, 10 Jan 2014 08:40:17 +0000 (08:40 +0000)]
clang-format: Slightly adapt line break in edge case.

Before:
  SomeMap[std::pair(aaaaaaaaaaaabbbbbbbbbbbbbbb)]
      .insert(ccccccccccccccccccccccc);

After:
  SomeMap[std::pair(aaaaaaaaaaaabbbbbbbbbbbbbbb)].insert(
      ccccccccccccccccccccccc);

This seems to be about 3:1 more common in Google and Chromium style and I found
only a handful of instances inside the LLVM codebase.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198924 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse the right dynamic linker for SPARC Linux executables.
Jakob Stoklund Olesen [Fri, 10 Jan 2014 08:18:34 +0000 (08:18 +0000)]
Use the right dynamic linker for SPARC Linux executables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198923 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoreapply r198858: Disable LeakSanitizer in TableGen binaries, see PR18325; this time...
Kostya Serebryany [Fri, 10 Jan 2014 08:05:42 +0000 (08:05 +0000)]
reapply r198858: Disable LeakSanitizer in TableGen binaries, see PR18325; this time LeakSanitizerIsTurnedOffForTheCurrentProcess is used instead of __lsan_is_turned_off

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198922 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Understand ObjC boxed expressions.
Daniel Jasper [Fri, 10 Jan 2014 07:44:53 +0000 (07:44 +0000)]
clang-format: Understand ObjC boxed expressions.

Before:
  [dictionary setObject:@(1)forKey:@"number"];
After:
  [dictionary setObject:@(1) forKey:@"number"];

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198920 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoLocate GCC installations on SPARC systems.
Jakob Stoklund Olesen [Fri, 10 Jan 2014 06:53:02 +0000 (06:53 +0000)]
Locate GCC installations on SPARC systems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198918 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoMake the tautological out of range warning use Sema::DiagRuntimeBehavior so that
Richard Trieu [Fri, 10 Jan 2014 04:38:09 +0000 (04:38 +0000)]
Make the tautological out of range warning use Sema::DiagRuntimeBehavior so that
the warning will not trigger on code protected by compile time checks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198913 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoGive the linker the right ELF type for SPARC targets.
Jakob Stoklund Olesen [Fri, 10 Jan 2014 03:51:33 +0000 (03:51 +0000)]
Give the linker the right ELF type for SPARC targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198912 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPass -32/-64 to the assembler when building for sparc/sparc64.
Jakob Stoklund Olesen [Fri, 10 Jan 2014 03:51:29 +0000 (03:51 +0000)]
Pass -32/-64 to the assembler when building for sparc/sparc64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198911 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[ms-abi] Handle __declspec(align) on bitfields "properly"
Warren Hunt [Fri, 10 Jan 2014 01:28:05 +0000 (01:28 +0000)]
[ms-abi] Handle __declspec(align) on bitfields "properly"

__declspec(align), when applied to bitfields affects their perferred
alignment instead of their required alignment.  We don't know why.
Also, #pragma pack(n) turns packing *off* if n is greater than the
pointer size.  This is now observable because of the impact of
declspec(align) on bitfields.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198907 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCGRecordLayoutBuilder.cpp: Clarify if-else. [-Wdangling-else]
NAKAMURA Takumi [Fri, 10 Jan 2014 00:54:50 +0000 (00:54 +0000)]
CGRecordLayoutBuilder.cpp: Clarify if-else. [-Wdangling-else]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198906 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC. 1) Warn when @dynamic (as well as synthesize)
Fariborz Jahanian [Fri, 10 Jan 2014 00:53:48 +0000 (00:53 +0000)]
ObjectiveC. 1) Warn when @dynamic (as well as synthesize)
property has the naming convention that implies 'ownership'.
2) improve on diagnostic and make it property specific.
3) fix the line number in the case of default property
synthesis. // rdar://15757510

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198905 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoReapply r198845, reverted in r198849, with a fix to make it valid C++98, not
Richard Smith [Fri, 10 Jan 2014 00:40:45 +0000 (00:40 +0000)]
Reapply r198845, reverted in r198849, with a fix to make it valid C++98, not
just valid C++11 =)

Original commit message:

PR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on
SPARC, where uint64_t apparently requires higher alignment than void*.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198903 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[ms-abi] Fixing CGRecordLayoutBuilder w.r.t. MS NonVirutalBase Layout
Warren Hunt [Thu, 9 Jan 2014 23:51:31 +0000 (23:51 +0000)]
[ms-abi] Fixing CGRecordLayoutBuilder w.r.t. MS NonVirutalBase Layout

The MS abi lays out *all* non-virtual bases with leading vfptrs before
laying out non-virutal bases without vfptrs.  This guarantees that the
primary base is laid out first.  r198818 fixed RecordLayoutBuilder to
produce compatiable layouts.  This patch fixes CGRecordLayoutBuilder to
be able to consume those layouts and produce meaningful output without
tripping any asserts about assumed incoming layout.

A test case is included that shows CGRecordLayoutBuilder in fact
produces output in the compatiable order.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198900 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdating documentation for the __has_attribute changes landed in r198897.
Aaron Ballman [Thu, 9 Jan 2014 23:11:13 +0000 (23:11 +0000)]
Updating documentation for the __has_attribute changes landed in r198897.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198899 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago__has_attribute now understands target-specific attributes. So when you ask whether...
Aaron Ballman [Thu, 9 Jan 2014 22:57:44 +0000 (22:57 +0000)]
__has_attribute now understands target-specific attributes. So when you ask whether an ARM target has the "interrupt" attribute, it will return true for ARM and MSP430 targets, and false for others.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198897 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemoving the notion of TargetAttributesSema and replacing it with one where the parse...
Aaron Ballman [Thu, 9 Jan 2014 22:48:32 +0000 (22:48 +0000)]
Removing the notion of TargetAttributesSema and replacing it with one where the parsed attributes are responsible for knowing their target-specific nature, instead of letting Sema figure it out. This is necessary so that __has_attribute can eventually determine whether a parsed attribute applies to the given target or not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198896 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix ast-dump-color.cpp test following r198883
Alp Toker [Thu, 9 Jan 2014 21:43:39 +0000 (21:43 +0000)]
Fix ast-dump-color.cpp test following r198883

The commit added a source location that used to be missing from the AST.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198892 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse getPointerSizeInBits.
Rafael Espindola [Thu, 9 Jan 2014 21:32:51 +0000 (21:32 +0000)]
Use getPointerSizeInBits.

I introduced this bug in 198815. Thanks for Mark Lacey for noticing.
Unfortunately, I have no idea how to test this code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198891 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPreserve -fretain-comments-from-system-headers in modules
Ben Langmuir [Thu, 9 Jan 2014 20:53:49 +0000 (20:53 +0000)]
Preserve -fretain-comments-from-system-headers in modules

Preserves the setting of -fretain-comments-from-system-headers when
building/saving/loading module files. This allows code completion to pick up
documentation comments from system modules.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198890 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoHave attribute 'objc_precise_lifetime' suppress -Wunused.
Ted Kremenek [Thu, 9 Jan 2014 20:19:45 +0000 (20:19 +0000)]
Have attribute 'objc_precise_lifetime' suppress -Wunused.

Fixes <rdar://problem/15596883>

In ARC, __attribute__((objc_precise_lifetime)) guarantees that the
object stored in it will survive to the end of the variable's formal
lifetime.  It is therefore useful even if it completely unused.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198888 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAttempting to appease the build bots on systems with ansi escape sequences.
Aaron Ballman [Thu, 9 Jan 2014 20:12:12 +0000 (20:12 +0000)]
Attempting to appease the build bots on systems with ansi escape sequences.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198887 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Disable LeakSanitizer in TableGen binaries, see PR18325"
Alp Toker [Thu, 9 Jan 2014 19:43:17 +0000 (19:43 +0000)]
Revert "Disable LeakSanitizer in TableGen binaries, see PR18325"

To declare or define reserved identifers is undefined behaviour in standard
C++. This needs to be addressed in compiler-rt before it can be used in LLVM.

See the list discussion for details.

This reverts commit r198858.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198885 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemoving a bit of custom parsing functionality used by the thread safety analysis...
Aaron Ballman [Thu, 9 Jan 2014 19:39:35 +0000 (19:39 +0000)]
Removing a bit of custom parsing functionality used by the thread safety analysis APIs. Now using tablegen to determine whether an attribute's arguments should be parsed in an unevaluated context instead of relying on a separate, hard-coded list of attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198883 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Add @s when breaking NSString literals.
Daniel Jasper [Thu, 9 Jan 2014 14:18:12 +0000 (14:18 +0000)]
clang-format: Add @s when breaking NSString literals.

While it is allowed to not have an @ on subsequent lines, it seems
general practice to add them. If undesired, the code author can easily
remove them again and clang-format won't re-add them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198871 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Understand #pragma mark
Daniel Jasper [Thu, 9 Jan 2014 13:56:49 +0000 (13:56 +0000)]
clang-format: Understand #pragma mark

Before:
  #pragma mark Any non - hyphenated or hyphenated string(including parentheses).
After:
  #pragma mark Any non-hyphenated or hyphenated string (including parentheses).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198870 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Some tweaks to braces list formatting:
Daniel Jasper [Thu, 9 Jan 2014 13:42:56 +0000 (13:42 +0000)]
clang-format: Some tweaks to braces list formatting:

- Format a braced list with one element per line if it has nested
  braced lists.
- Use a column layout only when the list has 6+ elements (instead of the
  current 4+ elements).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198869 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoThe OpenCL specification states that images are allocated
Pekka Jaaskelainen [Thu, 9 Jan 2014 13:37:30 +0000 (13:37 +0000)]
The OpenCL specification states that images are allocated
from the global address space (6.5.1 of the OpenCL 1.2 specification).
This makes clang construct the image arguments in the global address
space and generate the argument metadata with the correct address space
descriptor.

Patch by Pedro Ferreira!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198868 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agocheck-clang: Add dependencies to PrintFunctionNames and SampleAnalyzerPlugin, for...
NAKAMURA Takumi [Thu, 9 Jan 2014 13:26:02 +0000 (13:26 +0000)]
check-clang: Add dependencies to PrintFunctionNames and SampleAnalyzerPlugin, for r198747 and r198820.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198867 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDisable LeakSanitizer in TableGen binaries, see PR18325
Kostya Serebryany [Thu, 9 Jan 2014 09:26:26 +0000 (09:26 +0000)]
Disable LeakSanitizer in TableGen binaries, see PR18325

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198858 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix leak in lib/CodeGen/CGException.cpp, PR18318
Kostya Serebryany [Thu, 9 Jan 2014 09:22:32 +0000 (09:22 +0000)]
Fix leak in lib/CodeGen/CGException.cpp, PR18318

Summary: This fixes the leak described in http://llvm.org/bugs/show_bug.cgi?id=18318

Reviewers: chandlerc, dblaikie

Reviewed By: chandlerc

CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2474

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198857 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoIn areVectorOperandsLaxBitCastable() allow bitcast between a vector and scalar.
Argyrios Kyrtzidis [Thu, 9 Jan 2014 07:58:22 +0000 (07:58 +0000)]
In areVectorOperandsLaxBitCastable() allow bitcast between a vector and scalar.

rdar://15779837.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198856 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "PR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on"
Argyrios Kyrtzidis [Thu, 9 Jan 2014 05:01:04 +0000 (05:01 +0000)]
Revert "PR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on"

It broke building.
This reverts commit r198845.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198849 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on
Richard Smith [Thu, 9 Jan 2014 03:29:54 +0000 (03:29 +0000)]
PR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on
SPARC, where uint64_t apparently requires higher alignment than void*.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198845 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate Clang's CFGBlock interface to conform to the strange part of
Chandler Carruth [Thu, 9 Jan 2014 02:56:16 +0000 (02:56 +0000)]
Update Clang's CFGBlock interface to conform to the strange part of
LLVM's Value interface which is used in LLVM's DominatorTree analysis
and which changed in LLVM r198836.

The DominatorTree analysis is actually a generic graph analysis and
should be moved to LLVM's support library to clarify that Clang and
others are using it with arbitrary graphs. Further, it seems likely that
it should be using something other than printAsOperand, but this is
a simpler build fix. I'll clean this up later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198840 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix the clang -Werror build after r198818
David Blaikie [Thu, 9 Jan 2014 02:34:06 +0000 (02:34 +0000)]
Fix the clang -Werror build after r198818

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198837 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18401: Fix assert by implementing the current proposed direction of core
Richard Smith [Thu, 9 Jan 2014 02:22:22 +0000 (02:22 +0000)]
PR18401: Fix assert by implementing the current proposed direction of core
issue 1430. Don't allow a pack expansion to be used as an argument to an alias
template unless the corresponding parameter is a parameter pack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198833 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[ms-abi] Fixed failing lit test.
Warren Hunt [Thu, 9 Jan 2014 00:48:32 +0000 (00:48 +0000)]
[ms-abi] Fixed failing lit test.

This test adjustment was missing from the previous patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198822 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd a test for Static Analyzer checker plugins
Alp Toker [Thu, 9 Jan 2014 00:47:40 +0000 (00:47 +0000)]
Add a test for Static Analyzer checker plugins

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198820 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[ms-abi] Refactor Microsoft Record Layout
Warren Hunt [Thu, 9 Jan 2014 00:30:56 +0000 (00:30 +0000)]
[ms-abi] Refactor Microsoft Record Layout

This patch refactors microsoft record layout to be more "natural".  The
most dominant change is that vbptrs and vfptrs are injected after the
fact.  This simplifies the implementation and the math for the offest
for the first base/field after the vbptr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198818 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUsed the DataLayout methods instead of the Module methods.
Rafael Espindola [Thu, 9 Jan 2014 00:17:51 +0000 (00:17 +0000)]
Used the DataLayout methods instead of the Module methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198815 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoImplement isCXX11FinalKeyword() in terms of isCXX11VirtSpecifier()
Alp Toker [Thu, 9 Jan 2014 00:13:52 +0000 (00:13 +0000)]
Implement isCXX11FinalKeyword() in terms of isCXX11VirtSpecifier()

It's not worth keeping two copies of the identifier init and comparison code
just to save a pointer coparison.

This should reduce further once we get proper contextual keywords in the token
stream, so having the identifier checks in one place is a step towards that.

Cleanup only.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198814 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAttempting a fix the build bots should be happier with. Amends 198804.
Aaron Ballman [Wed, 8 Jan 2014 23:26:53 +0000 (23:26 +0000)]
Attempting a fix the build bots should be happier with. Amends 198804.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198805 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSilencing an MSVC warning about control reaching the end of a non-void function.
Aaron Ballman [Wed, 8 Jan 2014 23:08:41 +0000 (23:08 +0000)]
Silencing an MSVC warning about control reaching the end of a non-void function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198804 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoEnsure that ENABLE_SHARED is substituted for use in Windows builds
Alp Toker [Wed, 8 Jan 2014 20:06:24 +0000 (20:06 +0000)]
Ensure that ENABLE_SHARED is substituted for use in Windows builds

We (perhaps over-cautiously) disable the new plugin tests on static Windows
builds right now, matching what LLVM core does. This change was needed for the
lit check to work.

Thanks to Warren Hunt for spotting this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198782 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[Serialization] In ASTReader::getInputFile record it when we didn't find the file...
Argyrios Kyrtzidis [Wed, 8 Jan 2014 19:13:34 +0000 (19:13 +0000)]
[Serialization] In ASTReader::getInputFile record it when we didn't find the file to avoid looking it up again.

Hopefully addresses rdar://14514222.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198781 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Warn about double-delete in C++ at the second delete...
Jordan Rose [Wed, 8 Jan 2014 18:46:55 +0000 (18:46 +0000)]
[analyzer] Warn about double-delete in C++ at the second delete...

...rather somewhere in the destructor when we try to access something and
realize the object has already been deleted. This is necessary because
the destructor is processed before the 'delete' itself.

Patch by Karthik Bhat!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198779 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Don't hang forever when encountering a stray "}" in an @implementation...
Benjamin Kramer [Wed, 8 Jan 2014 15:59:42 +0000 (15:59 +0000)]
clang-format: Don't hang forever when encountering a stray "}" in an @implementation block.

PR18406.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198770 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang-format: Fix spacing in Cpp11 braced lists:
Daniel Jasper [Wed, 8 Jan 2014 15:41:13 +0000 (15:41 +0000)]
clang-format: Fix spacing in Cpp11 braced lists:

Before:
  vector<int> foo{ ::SomeFunction()};

After:
  vector<int> foo{::SomeFunction()};

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198769 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoTreating the RegParmAttr as a TypeAttr because that is what it is.
Aaron Ballman [Wed, 8 Jan 2014 13:23:01 +0000 (13:23 +0000)]
Treating the RegParmAttr as a TypeAttr because that is what it is.

Patch reviewed by Rafael Espindola.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198765 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDefine ENABLE_CLANG_EXAMPLES instead of relying on BUILD_EXAMPLES
Alp Toker [Wed, 8 Jan 2014 13:00:32 +0000 (13:00 +0000)]
Define ENABLE_CLANG_EXAMPLES instead of relying on BUILD_EXAMPLES

This is a further build fix attempt for r198747 on some Makefile builders where
the value wasn't set at all.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198764 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoProspective build fix for the Makefile system
Alp Toker [Wed, 8 Jan 2014 12:03:17 +0000 (12:03 +0000)]
Prospective build fix for the Makefile system

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198751 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoBuild fix following r198747
Alp Toker [Wed, 8 Jan 2014 11:55:49 +0000 (11:55 +0000)]
Build fix following r198747

Convert CMake CLANG_BUILD_EXAMPLES to a boolean value for consumption by
Python, otherwise the raw config string gets passed through which may not be
0/1.

The if/else matches the technique used to solve the problem in LLVM's own
CMakeLists.txt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198750 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUse -std=gnu89 in tools/c-index-test/CMakeLists.txt
Rafael Espindola [Wed, 8 Jan 2014 11:44:42 +0000 (11:44 +0000)]
Use -std=gnu89 in tools/c-index-test/CMakeLists.txt

With the old use of -std=c89 off_t is not defined and the build fails.

This seems to be another variation of
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40278.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198748 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoAdd tests for clang plugins
Alp Toker [Wed, 8 Jan 2014 11:38:47 +0000 (11:38 +0000)]
Add tests for clang plugins

Somehow the entire plugin infrastructure went wholly untested until now.

The only plugins available for use in testing are the examples, so plugin tests
will only be run if CLANG_BUILD_EXAMPLES is enabled in the build.

(The examples should really be enabled by default, not just to aid testing but
also to prevent bitrot in some key user-facing code. I'll propose that
shortly.)

Requires supporting changes in LLVM r198746.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198747 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFor AArch64, support builtin neon vector type with 'long' as base element type.
Jiangning Liu [Wed, 8 Jan 2014 07:51:48 +0000 (07:51 +0000)]
For AArch64, support builtin neon vector type with 'long' as base element type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198741 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRP18408: If a member template is used as a template template argument, it does
Richard Smith [Wed, 8 Jan 2014 01:51:59 +0000 (01:51 +0000)]
RP18408: If a member template is used as a template template argument, it does
not cause the template specialization to have no linkage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198726 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18400: ignore cv-qualifiers on the underlying type of an enumeration.
Richard Smith [Wed, 8 Jan 2014 01:16:19 +0000 (01:16 +0000)]
PR18400: ignore cv-qualifiers on the underlying type of an enumeration.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198723 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[Driver] Fix a typo in the setting of the arch name when -arch x86_64h is used.
Quentin Colombet [Wed, 8 Jan 2014 01:02:06 +0000 (01:02 +0000)]
[Driver] Fix a typo in the setting of the arch name when -arch x86_64h is used.
<rdar://problem/15711488>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198722 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoPR18234: Mark a tag definition as invalid early if it appears in a
Richard Smith [Wed, 8 Jan 2014 00:56:48 +0000 (00:56 +0000)]
PR18234: Mark a tag definition as invalid early if it appears in a
type-specifier in C++. Some checks will assert in this case otherwise (in
particular, the access specifier may be missing if this happens inside a class
definition, due to a violation of an AST invariant).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198721 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRe-applying r198699 after reverting r198461.
Adrian Prantl [Tue, 7 Jan 2014 22:05:55 +0000 (22:05 +0000)]
Re-applying r198699 after reverting r198461.
Debug info: Implement a cleaner version of r198461. For symmetry with
C and C++ don't emit an extra lexical scope for the compound statement
that is the body of an Objective-C method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198715 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Debug info: Ensure that the last stop point in a function is still within"
Adrian Prantl [Tue, 7 Jan 2014 22:05:52 +0000 (22:05 +0000)]
Revert "Debug info: Ensure that the last stop point in a function is still within"

This reverts commit r198461.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198714 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRevert "Debug info: Implement a cleaner version of r198461. For symmetry with"
Adrian Prantl [Tue, 7 Jan 2014 22:05:45 +0000 (22:05 +0000)]
Revert "Debug info: Implement a cleaner version of r198461. For symmetry with"

This reverts commit 198699 so we can get a cleaner patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198713 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Files with .c extensions are still C++ files if the compiler is CXX.
Jordan Rose [Tue, 7 Jan 2014 21:39:51 +0000 (21:39 +0000)]
[analyzer] Files with .c extensions are still C++ files if the compiler is CXX.

PR18339

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198711 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Pointers escape into +[NSValue valueWithPointer:]...
Jordan Rose [Tue, 7 Jan 2014 21:39:48 +0000 (21:39 +0000)]
[analyzer] Pointers escape into +[NSValue valueWithPointer:]...

...even though the argument is declared "const void *", because this is
just a way to pass pointers around as objects. (Though NSData is often
a better one.)

PR18262

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198710 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[analyzer] Remove unused ARCNotOwnedSymbol retain count return effect.
Jordan Rose [Tue, 7 Jan 2014 21:39:41 +0000 (21:39 +0000)]
[analyzer] Remove unused ARCNotOwnedSymbol retain count return effect.

RetainCountChecker has to track returned object values to know if they are
retained or not. Under ARC, even methods that return +1 are tracked by the
system and should be treated as +0. However, this effect behaves exactly
like NotOwned(ObjC), i.e. a generic Objective-C method that actually returns
+0, so we don't need a special case for it.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198709 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdating the documentation about how to add attributes based on the rather extensive...
Aaron Ballman [Tue, 7 Jan 2014 20:12:20 +0000 (20:12 +0000)]
Updating the documentation about how to add attributes based on the rather extensive refactorings that have happened over the past several months.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198705 91177308-0d34-0410-b5e6-96231b3b80d8

10 years ago[cmake] Write Version.inc at cmake time, not at build time.
Nico Weber [Tue, 7 Jan 2014 20:10:39 +0000 (20:10 +0000)]
[cmake] Write Version.inc at cmake time, not at build time.

In SVN checkouts, clang_revision_tag is rerun on every build, even if nothing
else is dirty.  After this change, Version.inc is only written at cmake time,
so that empty builds run 0 build steps (like r191784 apparently did for git).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198704 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDebug info: Implement a cleaner version of r198461. For symmetry with
Adrian Prantl [Tue, 7 Jan 2014 19:24:24 +0000 (19:24 +0000)]
Debug info: Implement a cleaner version of r198461. For symmetry with
C and C++ don't emit an extra lexical scope for the compound statement
that is the body of an Objective-C method.

rdar://problem/15010825

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198699 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoShorten the output of `clang-format --version`, include revision number.
Nico Weber [Tue, 7 Jan 2014 16:27:35 +0000 (16:27 +0000)]
Shorten the output of `clang-format --version`, include revision number.

Before:
  $ clang-format  --version
  LLVM (http://llvm.org/):
    LLVM version 3.5svn
    Optimized build with assertions.
    Built Jan  3 2014 (14:28:46).
    Default target: x86_64-apple-darwin13.0.0
    Host CPU: core-avx-i

Now:
  $ bin/clang-format --version
  clang-format version 3.5 (198452)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198694 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoRemove unused include.
Rafael Espindola [Tue, 7 Jan 2014 15:11:31 +0000 (15:11 +0000)]
Remove unused include.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198692 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoUpdate Clang for the move of headers in r198688.
Chandler Carruth [Tue, 7 Jan 2014 12:34:48 +0000 (12:34 +0000)]
Update Clang for the move of headers in r198688.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198689 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSort all the #include lines with LLVM's utils/sort_includes.py which
Chandler Carruth [Tue, 7 Jan 2014 11:51:46 +0000 (11:51 +0000)]
Sort all the #include lines with LLVM's utils/sort_includes.py which
encodes the canonical rules for LLVM's style. I noticed this had drifted
quite a bit when cleaning up LLVM, so wanted to clean up Clang as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198686 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFor areVectorOperandsLaxBitCastable(), only return false if both opearands are vector...
Argyrios Kyrtzidis [Tue, 7 Jan 2014 07:59:31 +0000 (07:59 +0000)]
For areVectorOperandsLaxBitCastable(), only return false if both opearands are vector types
and add a diagnostic when the operand is a vector and non-scalar value.

rdar://15722301

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198680 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix a -Wparentheses warning from GCC that caught a badly formed assert.
Chandler Carruth [Tue, 7 Jan 2014 06:52:12 +0000 (06:52 +0000)]
Fix a -Wparentheses warning from GCC that caught a badly formed assert.

I have no idea why Clang's warning doesn't fire here, looks like a Clang
bug. I'll investigate that separately.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198677 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCodeGen: Include llvm/Config/config.h for strtoll on Windows
Justin Bogner [Tue, 7 Jan 2014 03:43:15 +0000 (03:43 +0000)]
CodeGen: Include llvm/Config/config.h for strtoll on Windows

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198672 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoFix 'unkown' typo in test -target from r198321
Alp Toker [Tue, 7 Jan 2014 02:47:19 +0000 (02:47 +0000)]
Fix 'unkown' typo in test -target from r198321

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198671 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoupdate comment.
Adrian Prantl [Tue, 7 Jan 2014 02:40:59 +0000 (02:40 +0000)]
update comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198670 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoBring back magic constants in the digraph diagnostic
Alp Toker [Tue, 7 Jan 2014 02:35:33 +0000 (02:35 +0000)]
Bring back magic constants in the digraph diagnostic

This backs out changes in commit r198605 and part of r198604, replacing the
original tok::kw_template with a slightly more obvious placeholder
tok::unknown.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198666 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoImplement a new -fstandalone-debug option. rdar://problem/15685848
Adrian Prantl [Tue, 7 Jan 2014 01:19:08 +0000 (01:19 +0000)]
Implement a new -fstandalone-debug option. rdar://problem/15685848
It controls everything that -flimit-debug-info used to, plus the
vtable type optimization. The old -fno-limit-debug-info option is now an
alias to -fstandalone-debug and vice versa.

Standalone is the default on Darwin until dtrace is updated to work with
non-standalone debug info (rdar://problem/15758808).

Note: I kept the LimitedDebugInfo name in CodeGenOptions::DebugInfoKind
because NoStandaloneDebugInfo sounded even more confusing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198655 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoObjectiveC. Computation of offsets when doing @encode type encoding
Fariborz Jahanian [Tue, 7 Jan 2014 01:02:50 +0000 (01:02 +0000)]
ObjectiveC. Computation of offsets when doing @encode type encoding
is only used in an assert. Do not do it if assert is not on.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198652 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoclang/test/CodeGenCXX/instr-profile.cpp: Appease -Asserts.
NAKAMURA Takumi [Tue, 7 Jan 2014 00:59:39 +0000 (00:59 +0000)]
clang/test/CodeGenCXX/instr-profile.cpp: Appease -Asserts.

FIXME: Don't seek bb labels, like "if.else"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198651 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCodeGen: Sentences end with a period
Justin Bogner [Tue, 7 Jan 2014 00:20:28 +0000 (00:20 +0000)]
CodeGen: Sentences end with a period

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198649 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoProperly sort CMake list. NFC.
Ted Kremenek [Mon, 6 Jan 2014 23:20:52 +0000 (23:20 +0000)]
Properly sort CMake list.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198645 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCodeGen: Initial instrumentation based PGO implementation
Justin Bogner [Mon, 6 Jan 2014 22:27:43 +0000 (22:27 +0000)]
CodeGen: Initial instrumentation based PGO implementation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198640 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDriver: Accept -fprofile-instr-use and -fprofile-instr-generate
Justin Bogner [Mon, 6 Jan 2014 22:27:36 +0000 (22:27 +0000)]
Driver: Accept -fprofile-instr-use and -fprofile-instr-generate

These flags will be used for instrumentation based PGO.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198639 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoProspective MSVC 2010 build fix
Alp Toker [Mon, 6 Jan 2014 15:52:13 +0000 (15:52 +0000)]
Prospective MSVC 2010 build fix

Try to fix Compiler Error C2011 following r198607 by removing enum from 'enum
TokenKind' parameter types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198621 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoCorrect underlying integer type of enum TokenKind
Alp Toker [Mon, 6 Jan 2014 12:54:51 +0000 (12:54 +0000)]
Correct underlying integer type of enum TokenKind

This matches up the underlying type against the actual storage type 'unsigned
short' and lets us get rid of some casts while we're at it.

Effort is made to keep this building in pre-C++11 but as with other features
Token will be less efficiently packed in in legacy configurations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198607 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSimplify diagnostic tag type using the token kind formatter
Alp Toker [Mon, 6 Jan 2014 12:54:41 +0000 (12:54 +0000)]
Simplify diagnostic tag type using the token kind formatter

As far as the parser is concerned the tag type is always a keyword.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198606 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoDon't use magic constants in the digraph diagnostic
Alp Toker [Mon, 6 Jan 2014 12:54:32 +0000 (12:54 +0000)]
Don't use magic constants in the digraph diagnostic

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198605 91177308-0d34-0410-b5e6-96231b3b80d8

10 years agoSupport diagnostic formatting of keyword tokens
Alp Toker [Mon, 6 Jan 2014 12:54:18 +0000 (12:54 +0000)]
Support diagnostic formatting of keyword tokens

Implemented with a new getKeywordSpelling() accessor. Unlike getTokenName() the
result of this function is stable and may be used in diagnostic output.

Uses of this feature are split out into the subsequent commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198604 91177308-0d34-0410-b5e6-96231b3b80d8