]> granicus.if.org Git - clang/log
clang
10 years ago[ms-cxxabi] Improve vbtable name mangling accuracy
Reid Kleckner [Fri, 3 Jan 2014 23:42:00 +0000 (23:42 +0000)]
[ms-cxxabi] Improve vbtable name mangling accuracy

Summary:
This makes us more compatible with MSVC 2012+ and fixes PR17748 where we
would give two tables the same name.

Rather than doing a fresh depth-first traversal of the inheritance graph
for every record's vbtables, now we memoize vbtable paths for each
record.  By doing memoization, we end up considering virtual bases of
subobjects that come later in the depth-first traversal.  Where
previously we would have ignored a virtual base that we'd already seen,
we now consider it for name mangling purposes without emitting a
duplicate vbtable for it.

Reviewers: majnemer

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

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

10 years agoDebug info: Ensure that the last stop point in a function is still within
Adrian Prantl [Fri, 3 Jan 2014 23:34:30 +0000 (23:34 +0000)]
Debug info: Ensure that the last stop point in a function is still within
the lexical block formed by the compound statement that is the function
body.

rdar://problem/15010825

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

10 years agoRefactored Builtin::Context::isPrintfLike and isScanfLike into a helper function...
Aaron Ballman [Fri, 3 Jan 2014 20:10:54 +0000 (20:10 +0000)]
Refactored Builtin::Context::isPrintfLike and isScanfLike into a helper function. The implementations are identical, except for the format arguments being searched for.

No functional changes intended.

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

10 years agoFix 80 col violation.
Argyrios Kyrtzidis [Fri, 3 Jan 2014 19:53:09 +0000 (19:53 +0000)]
Fix 80 col violation.

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

10 years agoPass the decl directly to the diagnostic, no need to call getDeclName().
Argyrios Kyrtzidis [Fri, 3 Jan 2014 19:39:23 +0000 (19:39 +0000)]
Pass the decl directly to the diagnostic, no need to call getDeclName().

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

10 years agoFixing a FIXME; the RetTy template parameter is always bool in practice, and so it...
Aaron Ballman [Fri, 3 Jan 2014 19:26:43 +0000 (19:26 +0000)]
Fixing a FIXME; the RetTy template parameter is always bool in practice, and so it has been removed. No functional changes intended.

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

10 years agoUpdate for llvm's DataLayout including mangling information.
Rafael Espindola [Fri, 3 Jan 2014 19:22:05 +0000 (19:22 +0000)]
Update for llvm's DataLayout including mangling information.

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

10 years agoMarked the default constructor as an LLVM_DELETED_FUNCTION.
Aaron Ballman [Fri, 3 Jan 2014 18:51:47 +0000 (18:51 +0000)]
Marked the default constructor as an LLVM_DELETED_FUNCTION.

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

10 years agoRemoved one of the string versions of getQualifiedNameAsString, and switched over...
Aaron Ballman [Fri, 3 Jan 2014 18:42:48 +0000 (18:42 +0000)]
Removed one of the string versions of getQualifiedNameAsString, and switched over to using printQualifiedName where possible. No functional changes intended.

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

10 years ago[objc] Refactor and improve functionality for the -Wunused-property-ivar warning.
Argyrios Kyrtzidis [Fri, 3 Jan 2014 18:32:18 +0000 (18:32 +0000)]
[objc] Refactor and improve functionality for the -Wunused-property-ivar warning.

- Remove the additions to ObjCMethodDecl & ObjCIVarDecl that were getting de/serialized and consolidate
  all functionality for the checking for this warning in Sema::DiagnoseUnusedBackingIvarInAccessor
- Don't check immediately after the method body is finished, check when the @implementation is finished.
  This is so we can see if the ivar was referenced by any other method, even if the method was defined after the accessor.
- Don't silence the warning if any method is called from the accessor silence it if the accessor delegates to another method via self.

rdar://15727325

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

10 years agoReformat the description strings. No functionality change.
Rafael Espindola [Fri, 3 Jan 2014 18:13:17 +0000 (18:13 +0000)]
Reformat the description strings. No functionality change.

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

10 years agoWe haven't cared about VS 2005 in a long time, and VS 2003 in even longer.
Aaron Ballman [Fri, 3 Jan 2014 18:10:25 +0000 (18:10 +0000)]
We haven't cared about VS 2005 in a long time, and VS 2003 in even longer.

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

10 years agoFixed a FIXME; created a print method for Selectors that accepts a raw_ostream, and...
Aaron Ballman [Fri, 3 Jan 2014 17:59:55 +0000 (17:59 +0000)]
Fixed a FIXME; created a print method for Selectors that accepts a raw_ostream, and started using it in places it made sense.

No functional changes intended, just API cleanliness.

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

10 years agoMake clang::ento::CreateAnalysisConsumer a part of a public interface of the static...
Alexander Kornienko [Fri, 3 Jan 2014 17:23:10 +0000 (17:23 +0000)]
Make clang::ento::CreateAnalysisConsumer a part of a public interface of the static analyzer.

Summary:
This allows for a better alternative to the FrontendAction hack used in
clang-tidy in order to get static analyzer's ASTConsumer.

Reviewers: jordan_rose, krememek

Reviewed By: jordan_rose

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

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

10 years agoSimplifying the mutual exclusion check now that the diagnostics engine knows how...
Aaron Ballman [Fri, 3 Jan 2014 16:23:46 +0000 (16:23 +0000)]
Simplifying the mutual exclusion check now that the diagnostics engine knows how to handle Attr objects directly. Updates an associated test case due to the attribute name being properly quoted again.

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

10 years ago[OpenCL] Add test case for previous commit.
Joey Gouly [Fri, 3 Jan 2014 15:11:57 +0000 (15:11 +0000)]
[OpenCL] Add test case for previous commit.

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

10 years agoUsing the proper helper function instead of manually doing this work. No functional...
Aaron Ballman [Fri, 3 Jan 2014 15:02:58 +0000 (15:02 +0000)]
Using the proper helper function instead of manually doing this work. No functional changes intended.

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

10 years agoRemoving some more unnecessary manual quotes from diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 14:54:10 +0000 (14:54 +0000)]
Removing some more unnecessary manual quotes from diagnostics.

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

10 years agoRemoving an unneeded typecast. getScopeRep() already returns a NestedNameSpecifier.
Aaron Ballman [Fri, 3 Jan 2014 14:48:20 +0000 (14:48 +0000)]
Removing an unneeded typecast. getScopeRep() already returns a NestedNameSpecifier.

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

10 years agoRemoving some more unnecessary manual quotes from diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 14:23:03 +0000 (14:23 +0000)]
Removing some more unnecessary manual quotes from diagnostics.

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

10 years ago[OpenCL] Variables in the constant address space must be initialized.
Joey Gouly [Fri, 3 Jan 2014 14:16:55 +0000 (14:16 +0000)]
[OpenCL] Variables in the constant address space must be initialized.

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

10 years agoRemoving some more unnecessary manual quotes from diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 14:06:37 +0000 (14:06 +0000)]
Removing some more unnecessary manual quotes from diagnostics.

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

10 years agoIt turns out the problem was a bit more wide-spread. Removing a lot of unneeded typec...
Aaron Ballman [Fri, 3 Jan 2014 13:56:08 +0000 (13:56 +0000)]
It turns out the problem was a bit more wide-spread. Removing a lot of unneeded typecasts. getScopeRep() already returns a NestedNameSpecifier.

No functional changes intended.

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

10 years agoRemoving an unneeded typecast. getScopeRep() already returns a NestedNameSpecifier.
Aaron Ballman [Fri, 3 Jan 2014 13:45:46 +0000 (13:45 +0000)]
Removing an unneeded typecast. getScopeRep() already returns a NestedNameSpecifier.

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

10 years agoRemoving some more unnecessary manual quotes from diagnostics. Updated the related...
Aaron Ballman [Fri, 3 Jan 2014 13:34:55 +0000 (13:34 +0000)]
Removing some more unnecessary manual quotes from diagnostics. Updated the related test case to ensure correctness.

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

10 years agoclang-format: Recognize single-line macro usages inside macros.
Daniel Jasper [Fri, 3 Jan 2014 11:50:46 +0000 (11:50 +0000)]
clang-format: Recognize single-line macro usages inside macros.

Before:
  #define LIST(L)                                                     \
    L(FirstElement) L(SecondElement) L(ThirdElement) L(FourthElement) \
        L(FifthElement)

After:
  #define LIST(L)    \
    L(FirstElement)  \
    L(SecondElement) \
    L(ThirdElement)  \
    L(FourthElement) \
    L(FifthElement)

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

10 years agoRemoving some more unnecessary manual quotes from diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 02:20:27 +0000 (02:20 +0000)]
Removing some more unnecessary manual quotes from diagnostics.

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

10 years agoRemoving some more unnecessary manual quotes from attribute diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 02:14:08 +0000 (02:14 +0000)]
Removing some more unnecessary manual quotes from attribute diagnostics.

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

10 years agoRemoving some more unnecessary manual quotes from attribute diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 02:07:43 +0000 (02:07 +0000)]
Removing some more unnecessary manual quotes from attribute diagnostics.

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

10 years ago[analyzer] Don't track return value of NSNull +null for retain/release tracking.
Ted Kremenek [Fri, 3 Jan 2014 01:19:28 +0000 (01:19 +0000)]
[analyzer] Don't track return value of NSNull +null for retain/release tracking.

Fixes <rdar://problem/12858915>.

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

10 years agoRemoving some more unnecessary manual quotes from attribute diagnostics.
Aaron Ballman [Fri, 3 Jan 2014 01:09:27 +0000 (01:09 +0000)]
Removing some more unnecessary manual quotes from attribute diagnostics.

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

10 years agoRemove unused variable to fix clang warning
Reid Kleckner [Fri, 3 Jan 2014 00:36:32 +0000 (00:36 +0000)]
Remove unused variable to fix clang warning

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

10 years ago[ms-cxxabi] Move VBTableBuilder from CodeGen over to AST/VTableBuilder.cpp
Reid Kleckner [Fri, 3 Jan 2014 00:14:35 +0000 (00:14 +0000)]
[ms-cxxabi] Move VBTableBuilder from CodeGen over to AST/VTableBuilder.cpp

Summary:
No functionality change.

This code should live here long-term because we should be able to use it
to compute correct vftable names.

It turns out that the most natural way to implement the naming algorithm
is to use a caching layer similar to what we already have for virtual
table info in VTableContext.  Subsequent changes will take advantage of
this to fix PR17748, where we have a vbtable name collision.

Reviewers: majnemer

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

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

10 years agoRemoved an unnecessary %select from the alignas diagnostics. The attribute already...
Aaron Ballman [Thu, 2 Jan 2014 23:39:11 +0000 (23:39 +0000)]
Removed an unnecessary %select from the alignas diagnostics. The attribute already knows how it was spelled.

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

10 years agoThis diagnostic should not have had the manual quotation marks. Its only usage passed...
Aaron Ballman [Thu, 2 Jan 2014 23:22:40 +0000 (23:22 +0000)]
This diagnostic should not have had the manual quotation marks. Its only usage passed in an Attr object, which was already quoted when printing the diagnostic. However, there was no test case that caught this bug -- one has been added.

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

10 years agoRemoving some more unnecessary manual quotes from attribute diagnostics. Updated...
Aaron Ballman [Thu, 2 Jan 2014 23:15:58 +0000 (23:15 +0000)]
Removing some more unnecessary manual quotes from attribute diagnostics. Updated the associated testcase because QualType pretty printing was an improvement.

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

10 years agoRemoving some more unnecessary manual quotes from attribute diagnostics.
Aaron Ballman [Thu, 2 Jan 2014 23:02:01 +0000 (23:02 +0000)]
Removing some more unnecessary manual quotes from attribute diagnostics.

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

10 years agoReworded the NSObject attribute diagnostics to be more consistent with other attribut...
Aaron Ballman [Thu, 2 Jan 2014 22:45:33 +0000 (22:45 +0000)]
Reworded the NSObject attribute diagnostics to be more consistent with other attribute diagnostics. Also updated the associated test case.

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

10 years agoObjectiveC. Remove false positive warning for missing property
Fariborz Jahanian [Thu, 2 Jan 2014 22:42:09 +0000 (22:42 +0000)]
ObjectiveC. Remove false positive warning for missing property
backing ivar by not issuing this warning if ivar is referenced
somewhere and accessor makes method calls. // rdar://15727325

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

10 years agoRemoving some manual quotes from this diagnostic, since the AST diagnostics engine...
Aaron Ballman [Thu, 2 Jan 2014 22:29:41 +0000 (22:29 +0000)]
Removing some manual quotes from this diagnostic, since the AST diagnostics engine knows how to handle NamedDecl objects.

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

10 years agoUpdated the wording of two attribute-related diagnostics so that they print the offen...
Aaron Ballman [Thu, 2 Jan 2014 21:26:14 +0000 (21:26 +0000)]
Updated the wording of two attribute-related diagnostics so that they print the offending attribute name. Also updates the associated test cases.

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

10 years agoObjective-C ARC++: Prefer references to __strong/__weak over __unsafe_unretained.
Douglas Gregor [Thu, 2 Jan 2014 19:42:02 +0000 (19:42 +0000)]
Objective-C ARC++: Prefer references to __strong/__weak over __unsafe_unretained.

Fixes <rdar://problem/15713945>.

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

10 years agoCMake separate projects: finish output-directory changes.
Douglas Gregor [Thu, 2 Jan 2014 18:37:47 +0000 (18:37 +0000)]
CMake separate projects: finish output-directory changes.

Make sure clang-tblgen, clang++, and clang-cl get created in the Clang
binary build directory.

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

10 years ago[CMake] Add missing set_output_directory after Takumi's change in r198205.
Jordan Rose [Thu, 2 Jan 2014 18:28:32 +0000 (18:28 +0000)]
[CMake] Add missing set_output_directory after Takumi's change in r198205.

In a standalone build, Clang binaries should end up in Clang's build folder,
not LLVM's.

Xcode still has a few issues finding auxiliary tools and libraries in the
build folders. I'll fix those next.

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

10 years agoUsing the quoted version of an attribute name for consistency with other attribute...
Aaron Ballman [Thu, 2 Jan 2014 18:10:17 +0000 (18:10 +0000)]
Using the quoted version of an attribute name for consistency with other attribute diagnostics.

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

10 years agoObjectiveC. Class methods must be ignored when looking for
Fariborz Jahanian [Thu, 2 Jan 2014 17:24:32 +0000 (17:24 +0000)]
ObjectiveC. Class methods must be ignored when looking for
property accessor's missing backing ivar. This eliminates
the bogus warning being issued. // rdar://15728901

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

10 years agoAdd test for r198311.
Roman Divacky [Thu, 2 Jan 2014 17:18:03 +0000 (17:18 +0000)]
Add test for r198311.

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

10 years agoCMake: Unbreak separated LLVM/Clang project builds for Xcode.
Douglas Gregor [Thu, 2 Jan 2014 17:11:02 +0000 (17:11 +0000)]
CMake: Unbreak separated LLVM/Clang project builds for Xcode.

The separate Xcode project generated for Clang is putting the clang
executables into the same location where the LLVM executables are
going. This is wrong, and breaks the Clang build because we try to
create clang++ and clang-cl symlinks in the wrong place and to the
wrong place.

As a stop-gap to get these builds working again, teach the symlink
generation to point into the LLVM executable directory instead.

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

10 years agoRemove a tab that snuck in.
Roman Divacky [Thu, 2 Jan 2014 15:34:59 +0000 (15:34 +0000)]
Remove a tab that snuck in.

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

10 years agoIn the FreeBSD assembler driver, inform the sparc assembler that we're producing
Roman Divacky [Thu, 2 Jan 2014 15:13:18 +0000 (15:13 +0000)]
In the FreeBSD assembler driver, inform the sparc assembler that we're producing
PIC code.

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

10 years agoAdded an option to avoid splitting certain kinds of comments into lines.
Alexander Kornienko [Thu, 2 Jan 2014 15:13:14 +0000 (15:13 +0000)]
Added an option to avoid splitting certain kinds of comments into lines.

Summary: Added CommentPragmas option for this.

Reviewers: djasper, klimek

Reviewed By: klimek

CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2460

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

10 years agoVerify that clang TargetInfo descriptions match DataLayout strings from LLVM
Alp Toker [Thu, 2 Jan 2014 15:08:04 +0000 (15:08 +0000)]
Verify that clang TargetInfo descriptions match DataLayout strings from LLVM

The backend string is only verified when available as it's possible to run
clang IRGen for targets that haven't been built or don't exist in LLVM.

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

10 years agoRemove the now unused 's' specifications.
Rafael Espindola [Thu, 2 Jan 2014 14:06:59 +0000 (14:06 +0000)]
Remove the now unused 's' specifications.

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

10 years agoPass the aapcs and apcs features down to llvm.
Rafael Espindola [Thu, 2 Jan 2014 13:57:18 +0000 (13:57 +0000)]
Pass the aapcs and apcs features down to llvm.

No functionality change, but unblocks asserting that llvm's and clang's
datalayout strings are the same.

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

10 years ago[OpenCL] The kernel attribute can only be used on functions.
Joey Gouly [Thu, 2 Jan 2014 12:04:42 +0000 (12:04 +0000)]
[OpenCL] The kernel attribute can only be used on functions.

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

10 years agoUpdate the copyright credits -- Happy new year 2014!
NAKAMURA Takumi [Wed, 1 Jan 2014 08:27:31 +0000 (08:27 +0000)]
Update the copyright credits -- Happy new year 2014!

FIXME: Dragonegg may be updated at non-trivial changes.

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

10 years agoRemove an unused diag left over from r198046
Alp Toker [Wed, 1 Jan 2014 06:07:48 +0000 (06:07 +0000)]
Remove an unused diag left over from r198046

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

10 years agoEliminate UnaryTypeTraitExpr
Alp Toker [Wed, 1 Jan 2014 05:57:51 +0000 (05:57 +0000)]
Eliminate UnaryTypeTraitExpr

Remove UnaryTypeTraitExpr and switch all remaining type trait related handling
over to TypeTraitExpr.

The UTT/BTT/TT enum prefix and evaluation code is retained pending further
cleanup.

This is part of the ongoing work to unify type traits following the removal of
BinaryTypeTraitExpr in r197273.

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

10 years agoExpectAndConsume: Diagnose errors automatically
Alp Toker [Wed, 1 Jan 2014 03:08:43 +0000 (03:08 +0000)]
ExpectAndConsume: Diagnose errors automatically

 1) Teach ExpectAndConsume() to emit expected and expected-after diagnostics
    using the generic diagnostic descriptions added in r197972, eliminating another
    set of trivial err_expected_* variations while maintaining existing behaviour.

 2) Lift SkipUntil() recovery out of ExpectAndConsume(). The Expect/Consume
    family of functions are primitive parser operations that now have the
    well-defined property of operating on single tokens. Factoring out recovery
    exposes opportunities for more consistent and tailored error recover at the
    call sites instead of just relying on a bottled SkipUntil formula.

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

10 years ago[OpenCL] Produce an error, instead of a warning, for sizeof(void) in OpenCL.
Joey Gouly [Tue, 31 Dec 2013 15:47:49 +0000 (15:47 +0000)]
[OpenCL] Produce an error, instead of a warning, for sizeof(void) in OpenCL.

Patch by joey.gouly@arm.com

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

10 years agoRecover from errors in enum definition
Serge Pavlov [Tue, 31 Dec 2013 06:26:03 +0000 (06:26 +0000)]
Recover from errors in enum definition

Previously any error in enum definition body stopped parsing it. With this
change parser tries to recover from errors.
The patch fixes PR10982.

Differential Revision: http://llvm-reviews.chandlerc.com/D2018

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

10 years agoSilence g++ 4.9 build issue
Alp Toker [Tue, 31 Dec 2013 03:16:57 +0000 (03:16 +0000)]
Silence g++ 4.9 build issue

lib/ASTMatchers/ASTMatchFinder.cpp:276:28: error: typedef 'traverse_can_only_be_instantiated_with_base_type' locally defined but not used [-Werror=unused-local-typedefs]
                            traverse_can_only_be_instantiated_with_base_type);

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

10 years agoSwitch over more of the parser to err_expected
Alp Toker [Mon, 30 Dec 2013 23:29:50 +0000 (23:29 +0000)]
Switch over more of the parser to err_expected

Includes a fix for a missing highlight range caused by a ',' typo in the PP
diagnostics.

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

10 years agoUpdate DataRecursiveASTVisitor so that it visits attributes.
DeLesley Hutchins [Mon, 30 Dec 2013 21:03:02 +0000 (21:03 +0000)]
Update DataRecursiveASTVisitor so that it visits attributes.

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

10 years agoFix two typos in comments. No functionality change.
Nick Lewycky [Mon, 30 Dec 2013 20:16:30 +0000 (20:16 +0000)]
Fix two typos in comments. No functionality change.

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

10 years agoRemove linkage macro from the CXLanguageKind enum
Reid Kleckner [Mon, 30 Dec 2013 17:48:49 +0000 (17:48 +0000)]
Remove linkage macro from the CXLanguageKind enum

Enums don't have linkage, so clang warns when this expands to dllimport.

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

10 years agoUpdate RecursiveASTVisitor so that it visits attributes. This is currently
DeLesley Hutchins [Mon, 30 Dec 2013 17:24:36 +0000 (17:24 +0000)]
Update RecursiveASTVisitor so that it visits attributes.  This is currently
important for thread safety attributes, which contain expressions that were
not being visited, and were thus invisible to various tools.  There are now
Visit*Attr methods that can be overridden for every attribute.

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

10 years agoChanged the test to avoid EXPECT_EQ(false, ...), which leads to
Alexander Kornienko [Mon, 30 Dec 2013 16:11:28 +0000 (16:11 +0000)]
Changed the test to avoid EXPECT_EQ(false, ...), which leads to
-Wconversion-null warning in GCC.

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

10 years ago[CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DI...
NAKAMURA Takumi [Mon, 30 Dec 2013 06:48:30 +0000 (06:48 +0000)]
[CMake][VS][XCode] Restruct the output directory layout more comfortable, ${BINARY_DIR}/${BUILD_MODE}/(bin|lib)

We have been seeing nasty directory layout with CMake multiconfig, such as,
  bin/Release/clang.exe
  lib/clang/3.x/...
  lib/Release/clang/3.x/.. (duplicated)

Move the layout similar to autoconf's;
  Release/bin/clang.exe
  Release/lib/clang/3.x/...

Checked on Visual Studio 10. Could you guys please confirm my change on XCode(and other multiconfig builders)?

Note: Don't set variables CMAKE_*_OUTPUT_DIRECTORY any more, or a certain builder, for eaxample, msbuild.exe, would be confused.

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

10 years agoPort r198088 (set NO_DEAD_STRIP for clang) from make to cmake.
Nico Weber [Mon, 30 Dec 2013 03:43:30 +0000 (03:43 +0000)]
Port r198088 (set NO_DEAD_STRIP for clang) from make to cmake.

Also stop setting passing -dead_strip explicitly for libclang and instead
rely on this now happening by default. (And make it happen by default for
add_clang_library, which doesn't use the library cmake functions from llvm.)

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

10 years agoFor AArch64 Neon, simplify scalar dup by lane0 for fp.
Jiangning Liu [Mon, 30 Dec 2013 02:45:09 +0000 (02:45 +0000)]
For AArch64 Neon, simplify scalar dup by lane0 for fp.

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

10 years agoFix and reword some typos
Alp Toker [Mon, 30 Dec 2013 02:06:29 +0000 (02:06 +0000)]
Fix and reword some typos

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

10 years agoCleanup: Switch the preprocessor to err_pp_expected_after
Alp Toker [Mon, 30 Dec 2013 01:59:29 +0000 (01:59 +0000)]
Cleanup: Switch the preprocessor to err_pp_expected_after

This is approaching consistency but the PP and Parse categories they still have
slightly different wording:

def err_pp_expected_after : Error<"missing %1 after %0">;
def err_expected_after   : Error<"expected %1 after %0">;

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

10 years agoDon't use PrintFunctionNames.exports on Windows.
Nico Weber [Mon, 30 Dec 2013 00:05:56 +0000 (00:05 +0000)]
Don't use PrintFunctionNames.exports on Windows.

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

10 years agoFix typo in comment.
Nico Weber [Sun, 29 Dec 2013 23:15:01 +0000 (23:15 +0000)]
Fix typo in comment.

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

10 years ago[cmake] Set in LLVM_EXPORTED_SYMBOL_FILE PrintFunctionNames/CMakeLists.txt.
Nico Weber [Sun, 29 Dec 2013 23:14:26 +0000 (23:14 +0000)]
[cmake] Set in LLVM_EXPORTED_SYMBOL_FILE PrintFunctionNames/CMakeLists.txt.

The corresponding Makefile sets it too. Also tweak add_clang_library to support
LLVM_EXPORTED_SYMBOL_FILE for modules.

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

10 years agoUse LLVM_EXPORTED_SYMBOL_FILE in libclang's cmake build.
Nico Weber [Sun, 29 Dec 2013 19:31:48 +0000 (19:31 +0000)]
Use LLVM_EXPORTED_SYMBOL_FILE in libclang's cmake build.

Now the exports file should have an effect on non-darwin too.

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

10 years agoFixing a compile error that recently started happening for me in MSVC 2013. CFGTermin...
Aaron Ballman [Sun, 29 Dec 2013 18:59:54 +0000 (18:59 +0000)]
Fixing a compile error that recently started happening for me in MSVC 2013. CFGTerminator has an explicit conversion to bool operator that we can make use of instead of using == 0.

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

10 years agoBriefly document diag-build.sh
Alp Toker [Sat, 28 Dec 2013 21:59:11 +0000 (21:59 +0000)]
Briefly document diag-build.sh

It may be a quick and dirty script but it's still useful to have some
indication as to its purpose.

Text taken straight from Jordan's r158682 commit message.

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

10 years agoRename isBuiltinCall() to getBuiltinCallee()
Alp Toker [Sat, 28 Dec 2013 21:59:02 +0000 (21:59 +0000)]
Rename isBuiltinCall() to getBuiltinCallee()

This better describes what the function does.

Cleanup only.

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

10 years agoTidy up CGCXXABI creation
Alp Toker [Sat, 28 Dec 2013 21:58:40 +0000 (21:58 +0000)]
Tidy up CGCXXABI creation

'create' functions conventionally return a pointer, not a reference.

Also use an OwningPtr to get replace the delete of a reference member.

No functional change.

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

10 years agoPropagate "-arch x86_64h" setting to the linker. <rdar://problem/15711488>
Bob Wilson [Sat, 28 Dec 2013 05:26:14 +0000 (05:26 +0000)]
Propagate "-arch x86_64h" setting to the linker. <rdar://problem/15711488>

This is a follow-up to r194907, which added a new -arch setting to make it
easier to specify AVX2 targets. The "-arch x86_64h" option needs to be passed
on to the linker, but it was getting canonicalized to x86_64 by the code
in getArchTypeForDarwinArchName.

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

10 years agoSilence a dubious GCC warning about a set but unused global. Indeed, the
Chandler Carruth [Sat, 28 Dec 2013 02:50:00 +0000 (02:50 +0000)]
Silence a dubious GCC warning about a set but unused global. Indeed, the
purpose of this global is to be set and not used. =]

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

10 years agoSet NO_DEAD_STRIP for clang after llvm r198087.
Nico Weber [Fri, 27 Dec 2013 22:39:28 +0000 (22:39 +0000)]
Set NO_DEAD_STRIP for clang after llvm r198087.

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

10 years agoMove MS header search test inputs to Inputs/
Reid Kleckner [Fri, 27 Dec 2013 20:41:49 +0000 (20:41 +0000)]
Move MS header search test inputs to Inputs/

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

10 years agoReduce indentation of some VFTableBuilder code.
Reid Kleckner [Fri, 27 Dec 2013 20:29:16 +0000 (20:29 +0000)]
Reduce indentation of some VFTableBuilder code.

No functionality change.

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

10 years agoSilence compile warning by removing unused SourceMgr member
Will Wilson [Fri, 27 Dec 2013 20:02:27 +0000 (20:02 +0000)]
Silence compile warning by removing unused SourceMgr member

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

10 years agoImplement MSVC header search algorithm in MicrosoftMode.
Will Wilson [Fri, 27 Dec 2013 19:46:16 +0000 (19:46 +0000)]
Implement MSVC header search algorithm in MicrosoftMode.
Follows algorithm described here: http://msdn.microsoft.com/en-us/library/36k2cdd4.aspx

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

10 years agoFix incorrect copy-pasted method decl that MSVC allowed.
Reid Kleckner [Fri, 27 Dec 2013 19:45:53 +0000 (19:45 +0000)]
Fix incorrect copy-pasted method decl that MSVC allowed.

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

10 years ago[ms-cxxabi] Emit fewer trivial return adjusting thunks
Reid Kleckner [Fri, 27 Dec 2013 19:43:59 +0000 (19:43 +0000)]
[ms-cxxabi] Emit fewer trivial return adjusting thunks

Most importantly, this makes our vtable layout match MSVC's.  Previously
we would emit a return adjusting thunk whenever the return types
differed, even if the adjustment would have been trivial.

MSVC does emit some trivial return adjusting thunks, but only if there
was already an overridden method that required a return adjustment.

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

10 years agoIn an effort to reduce the likelihood of text getting out of sync, reusing the text...
Aaron Ballman [Fri, 27 Dec 2013 19:08:57 +0000 (19:08 +0000)]
In an effort to reduce the likelihood of text getting out of sync, reusing the text from some diagnostics explicitly. No functional changes intended.

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

10 years agoRemoved a string literal for a diagnostic, and updated the diagnostic to not manually...
Aaron Ballman [Fri, 27 Dec 2013 16:30:46 +0000 (16:30 +0000)]
Removed a string literal for a diagnostic, and updated the diagnostic to not manually quote. No functional changes intended.

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

10 years agoBury leaked pointers in a global array to silence a leak detector in --disable-free...
Kostya Serebryany [Fri, 27 Dec 2013 08:11:08 +0000 (08:11 +0000)]
Bury leaked pointers in a global array to silence a leak detector in --disable-free mode

Summary:
This is an alternative to http://llvm-reviews.chandlerc.com/D2475
suggested by Chandler.

Reviewers: chandlerc, rnk, dblaikie

CC: cfe-commits, earthdok
Differential Revision: http://llvm-reviews.chandlerc.com/D2478

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

10 years agoclang-format: Break default arguments less eagerly.
Daniel Jasper [Fri, 27 Dec 2013 06:39:56 +0000 (06:39 +0000)]
clang-format: Break default arguments less eagerly.

Before:
  void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(int aaaaaaaaaaaaaaaaaaaaaaaaaaaa =
                                              1);

After:
  void aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      int aaaaaaaaaaaaaaaaaaaaaaaaaaaa = 1);

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

10 years agoWarn on mismatched parentheses in memcmp and friends.
Nico Weber [Thu, 26 Dec 2013 23:38:39 +0000 (23:38 +0000)]
Warn on mismatched parentheses in memcmp and friends.

Thisadds a new warning that warns on code like this:

  if (memcmp(a, b, sizeof(a) != 0))

The warning looks like:

test4.cc:5:30: warning: size argument in 'memcmp' call is a comparison [-Wmemsize-comparison]
  if (memcmp(a, b, sizeof(a) != 0))
                   ~~~~~~~~~~^~~~
test4.cc:5:7: note: did you mean to compare the result of 'memcmp' instead?
  if (memcmp(a, b, sizeof(a) != 0))
      ^                          ~
                            )
test4.cc:5:20: note: explicitly cast the argument to size_t to silence this warning
  if (memcmp(a, b, sizeof(a) != 0))
                   ^
                   (size_t)(     )
1 warning generated.

This found 2 bugs in chromium and has 0 false positives on both chromium and
llvm.

The idea of triggering this warning on a binop in the size argument is due to
rnk.

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

10 years ago[ms-abi] unix-line endings in lit test, no functional change
Warren Hunt [Thu, 26 Dec 2013 22:10:14 +0000 (22:10 +0000)]
[ms-abi] unix-line endings in lit test, no functional change

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

10 years ago[ms-abi] Fixes improperly sized vfptrs with pragma pack
Warren Hunt [Thu, 26 Dec 2013 22:09:12 +0000 (22:09 +0000)]
[ms-abi] Fixes improperly sized vfptrs with pragma pack

With pragma pack, the layout engine would produce vfptrs that were
packed width rather than pointer width.  This patch addresses the issue
and adds a test case.

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

10 years agoTeach the diagnostics engine about the Attr type to make reporting on semantic attrib...
Aaron Ballman [Thu, 26 Dec 2013 18:30:57 +0000 (18:30 +0000)]
Teach the diagnostics engine about the Attr type to make reporting on semantic attributes easier (and not require hard-coded strings). This requires a getSpelling() function on the Attr class, which is table-driven. Updates a handful of cases where a hard-coded string was being used to test the functionality out. Updating associated test cases for the improved quoting.

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

10 years agoRemoved a string literal for an attribute name, which means the attribute name will...
Aaron Ballman [Thu, 26 Dec 2013 17:30:44 +0000 (17:30 +0000)]
Removed a string literal for an attribute name, which means the attribute name will be quoted in the diagnostic. Manually added some quotes to a diagnostic for consistency. Updated the test cases as appropriate.

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

10 years agoThis diagnostic did not accept arguments, and did not have any test coverage. Paramet...
Aaron Ballman [Thu, 26 Dec 2013 17:07:49 +0000 (17:07 +0000)]
This diagnostic did not accept arguments, and did not have any test coverage. Parameterized the diagnostic, and made it more consistent with other attribute diagnostic wordings. Added test coverage.

Since this warning was generalized, it was also given a sensible warning group flag and the corresponding test was updated to reflect this.

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