]> granicus.if.org Git - clang/log
clang
10 years agoSwitched code from using hasAttr followed by getAttr to simply call getAttr directly...
Aaron Ballman [Thu, 19 Dec 2013 02:58:51 +0000 (02:58 +0000)]
Switched code from using hasAttr followed by getAttr to simply call getAttr directly and check the resulting value. Also fixes some minor formatting issues surrounding the getAttr code.

No functional changes intended.

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

10 years agoReplacing calls to getAttr with calls to hasAttr for clarity. No functional change...
Aaron Ballman [Thu, 19 Dec 2013 02:39:40 +0000 (02:39 +0000)]
Replacing calls to getAttr with calls to hasAttr for clarity. No functional change intended -- this only replaces Boolean uses of getAttr.

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

10 years agoPCH: fix a crash caused by a circular deserialization dependency
Dmitri Gribenko [Thu, 19 Dec 2013 02:05:20 +0000 (02:05 +0000)]
PCH: fix a crash caused by a circular deserialization dependency

We started by trying to deserialize decltype(func-param) in a trailing return
type, which causes the function parameter decl to be deserialized, which pulls
in the function decl, which pulls the function type, which pulls the same
decltype() in the return type, and then we crashed.

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

10 years agoSimplify CXXMethodDecl::isVirtual() for __interface case
Dmitri Gribenko [Thu, 19 Dec 2013 01:58:52 +0000 (01:58 +0000)]
Simplify CXXMethodDecl::isVirtual() for __interface case

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

10 years agoDebug info: (Bugfix) emit CRV qualifiers for pointers to member functions.
Adrian Prantl [Thu, 19 Dec 2013 01:38:47 +0000 (01:38 +0000)]
Debug info: (Bugfix) emit CRV qualifiers for pointers to member functions.
rdar://problem/15678916.

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

10 years ago[ms-abi] Update Alignment for VtorDisps
Warren Hunt [Thu, 19 Dec 2013 00:43:59 +0000 (00:43 +0000)]
[ms-abi] Update Alignment for VtorDisps

The alignment impact of the virtual bases apperas to be applied in
order, rather than up front.  This patch adds the new behavior and
provides a test case.

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

10 years agoAdded a comment about the launch_bounds attribute's AST node being required. Since...
Aaron Ballman [Thu, 19 Dec 2013 00:41:31 +0000 (00:41 +0000)]
Added a comment about the launch_bounds attribute's AST node being required. Since there were no test cases for the attribute, some have been added. This promptly demonstrated a bug with the semantic handling, which is also fixed.

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

10 years agoRefactor the Microsoft inheritance attribute handling so that it no longer has specia...
Aaron Ballman [Wed, 18 Dec 2013 23:44:18 +0000 (23:44 +0000)]
Refactor the Microsoft inheritance attribute handling so that it no longer has special treatment. Also fixes a minor bug where the attributes were being parsed as though they were GNU-style attributes when they were in fact keyword attributes.

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

10 years agoFix the DataLayout string produced by clang for NaCl.
Rafael Espindola [Wed, 18 Dec 2013 23:41:04 +0000 (23:41 +0000)]
Fix the DataLayout string produced by clang for NaCl.

Reviewed by Derek Schuff.

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

10 years agoImplemented delayed processing of 'unavailable' checking, just like with 'deprecated'.
Ted Kremenek [Wed, 18 Dec 2013 23:30:06 +0000 (23:30 +0000)]
Implemented delayed processing of 'unavailable' checking, just like with 'deprecated'.

Fixes <rdar://problem/15584219> and <rdar://problem/12241361>.

This change looks large, but all it does is reuse and consolidate
the delayed diagnostic logic for deprecation warnings with unavailability
warnings.  By doing so, it showed various inconsistencies between the
diagnostics, which were close, but not consistent.  It also revealed
some missing "note:"'s in the deprecated diagnostics that were showing
up in the unavailable diagnostics, etc.

This change also changes the wording of the core deprecation diagnostics.
Instead of saying "function has been explicitly marked deprecated"
we now saw "'X' has been been explicitly marked deprecated".  It
turns out providing a bit more context is useful, and often we
got the actual term wrong or it was not very precise
 (e.g., "function" instead of "destructor").  By just saying the name
of the thing that is deprecated/deleted/unavailable we define
this issue away.  This diagnostic can likely be further wordsmithed
to be shorter.

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

10 years agoUse getAsCXXRecordDecl to shorten some gets and casts
Reid Kleckner [Wed, 18 Dec 2013 23:17:05 +0000 (23:17 +0000)]
Use getAsCXXRecordDecl to shorten some gets and casts

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

10 years agoObjectiveC. support "section" attribute on properties
Fariborz Jahanian [Wed, 18 Dec 2013 23:09:57 +0000 (23:09 +0000)]
ObjectiveC. support "section" attribute on properties
and methods. rdar://15450637

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

10 years agoRequire the type of a by-copy capture to be complete before creating its field.
Douglas Gregor [Wed, 18 Dec 2013 23:02:36 +0000 (23:02 +0000)]
Require the type of a by-copy capture to be complete before creating its field.

The problem here is more serious than the fix implies. Adding a field
to a class updates the triviality bits for the class (among other
things). Failing to require a complete type before adding the field
meant that these updates don't happen in the well-formed case where
the capture is an uninstantiated class template specialization,
leading the lambda itself to be treated as having a trivial copy
constructor when it shouldn't. Fixes <rdar://problem/15560464>.

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

10 years agoAdd a test for mipsel-nacl too.
Rafael Espindola [Wed, 18 Dec 2013 22:40:42 +0000 (22:40 +0000)]
Add a test for mipsel-nacl too.

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

10 years agoEnhance OpenMP parser tests from r197553 / r197598
Alp Toker [Wed, 18 Dec 2013 22:34:19 +0000 (22:34 +0000)]
Enhance OpenMP parser tests from r197553 / r197598

Move some of the verifier directives away from the end of the pragma line.

This ensures that the diagnostics relate to the trailing token being tested and
not the verifier comments which are themselves part of the token stream.

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

10 years agoDebug info: Implement (rvalue) reference qualifiers for C++11 non-static
Adrian Prantl [Wed, 18 Dec 2013 21:48:18 +0000 (21:48 +0000)]
Debug info: Implement (rvalue) reference qualifiers for C++11 non-static
member functions. Paired commit with LLVM.

rdar://problem/15356637

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

10 years agoAllow Objective-C pointer conversions following an explicit user conversion.
Douglas Gregor [Wed, 18 Dec 2013 21:46:16 +0000 (21:46 +0000)]
Allow Objective-C pointer conversions following an explicit user conversion.

Finishes the work started in r194224, and fixes <rdar://problem/15494681>.

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

10 years agoclang-format-diff.py: fix -regex/-iregex matching
Alp Toker [Wed, 18 Dec 2013 21:34:07 +0000 (21:34 +0000)]
clang-format-diff.py: fix -regex/-iregex matching

While debating the finer points of file extension matching, we somehow missed
the bigger problem that the current code will match anything starting with the
default or user-specified pattern (e.g. lit.site.cfg.in).

Fix this by doing what find(1) does, implicitly wrapping the pattern with ^$.

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

10 years agoObjective-C. After providing a fix-it for a
Fariborz Jahanian [Wed, 18 Dec 2013 21:04:43 +0000 (21:04 +0000)]
Objective-C. After providing a fix-it for a
cstring, converted to NSString, produce the
matching AST for it. This also required some
refactoring of the previous code. // rdar://14106083

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

10 years agoMake setABIAPCS and setABIAAPCS easier to reason about.
Rafael Espindola [Wed, 18 Dec 2013 20:24:51 +0000 (20:24 +0000)]
Make setABIAPCS and setABIAAPCS easier to reason about.

These functions now always set the same variables in the same order and they
don't overlap with thep constructor.

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

10 years agoSplit setABI in two helpers. No functionality change.
Rafael Espindola [Wed, 18 Dec 2013 19:47:32 +0000 (19:47 +0000)]
Split setABI in two helpers. No functionality change.

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

10 years agoFix OpenMP recovery with trailing tokens following the pragma
Alp Toker [Wed, 18 Dec 2013 19:10:54 +0000 (19:10 +0000)]
Fix OpenMP recovery with trailing tokens following the pragma

The recovery was failing due to a missing case in SkipUntil().

Also add back tests from r197553 that were reverted in the previous commit.

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

10 years agoRevert "[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and...
Alp Toker [Wed, 18 Dec 2013 19:10:49 +0000 (19:10 +0000)]
Revert "[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens"

These parser changes were redundant. The same or better recovery can be
achieved with a one-line fix to SkipUntil() due to land in the next commit.

This reverts commit r197553.

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

10 years agoAdding a win32-targeted test into Tooling/multi-jobs.cpp, to make sure it doesn't...
Artyom Skrobov [Wed, 18 Dec 2013 18:55:36 +0000 (18:55 +0000)]
Adding a win32-targeted test into Tooling/multi-jobs.cpp, to make sure it doesn't get broken again
(prompted by NAKAMURA Takumi)

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

10 years agocheck-clang: Fixup r197576, to replace CMAKE_CFG_INTDIR on clang_tools_dir.
NAKAMURA Takumi [Wed, 18 Dec 2013 18:25:13 +0000 (18:25 +0000)]
check-clang: Fixup r197576, to replace CMAKE_CFG_INTDIR on clang_tools_dir.

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

10 years agoOpenCL: Do not force 64 bit floats for (embedded) targets with only 32bit floats.
Pekka Jaaskelainen [Wed, 18 Dec 2013 18:15:03 +0000 (18:15 +0000)]
OpenCL: Do not force 64 bit floats for (embedded) targets with only 32bit floats.

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

10 years agoObjectiveC. Fixes the sentence in a diagnostic.
Fariborz Jahanian [Wed, 18 Dec 2013 16:51:06 +0000 (16:51 +0000)]
ObjectiveC. Fixes the sentence in a diagnostic.
// rdar://15397430

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

10 years agoclang-format parts of the file.
Rafael Espindola [Wed, 18 Dec 2013 16:38:48 +0000 (16:38 +0000)]
clang-format parts of the file.

I am about to send a patch for review touching these and clang-formating first
makes the patch much easier to read.

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

10 years agoImplement the MSABI and SysVABI calling conventions for Objective-C method declaratio...
Aaron Ballman [Wed, 18 Dec 2013 16:23:37 +0000 (16:23 +0000)]
Implement the MSABI and SysVABI calling conventions for Objective-C method declarations. This appears to be an omission from r189644.

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

10 years agoAdding some comments about AST node requirements for attributes which create AST...
Aaron Ballman [Wed, 18 Dec 2013 15:59:41 +0000 (15:59 +0000)]
Adding some comments about AST node requirements for attributes which create AST nodes but never actually make use of them. No functional changes.

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

10 years agoWhitespace cleanup.
Rafael Espindola [Wed, 18 Dec 2013 15:52:38 +0000 (15:52 +0000)]
Whitespace cleanup.

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

10 years agoRemove OpenCL-specific type keywords and specifiers
Alp Toker [Wed, 18 Dec 2013 15:29:05 +0000 (15:29 +0000)]
Remove OpenCL-specific type keywords and specifiers

This commit kills off custom type specifier and keyword handling of OpenCL C
data types.

Although the OpenCL spec describes them as keywords, we can handle them more
elegantly as predefined types. This should provide better error correction and
code completion as well as simplifying the implementation.

The primary intention is however to simplify the C/C++ parser and save some
packed bits on AST structures that had been extended in r170432 just for
OpenCL.

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

10 years agoAdd -f64:32:64 to the darwin ppc32 DataLayout.
Rafael Espindola [Wed, 18 Dec 2013 15:16:50 +0000 (15:16 +0000)]
Add -f64:32:64 to the darwin ppc32 DataLayout.

A f64 inside a struct can be 32 bit aligned on darwin.

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

10 years agocheck-clang: Introduce clang_tools_dir in lit.site.cfg, for clang separated from...
NAKAMURA Takumi [Wed, 18 Dec 2013 15:08:56 +0000 (15:08 +0000)]
check-clang: Introduce clang_tools_dir in lit.site.cfg, for clang separated from llvm.

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

10 years agoclang/test/CMakeLists.txt: Prune CLANG_SOURCE_DIR and CLANG_BINARY_DIR. They are...
NAKAMURA Takumi [Wed, 18 Dec 2013 15:08:49 +0000 (15:08 +0000)]
clang/test/CMakeLists.txt: Prune CLANG_SOURCE_DIR and CLANG_BINARY_DIR. They are set at top.

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

10 years agoclang-format: Fix indentation corner case.
Daniel Jasper [Wed, 18 Dec 2013 10:44:36 +0000 (10:44 +0000)]
clang-format: Fix indentation corner case.

Before:
  aaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                 .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
  aaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                   .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa();

After:
  aaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                 .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
  aaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
                   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
                   .aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa();

Probably still not ideal, but should be a step into the right direction.

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

10 years ago[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens
Alexey Bataev [Wed, 18 Dec 2013 08:46:25 +0000 (08:46 +0000)]
[OPENMP] Fix for parsing OpenMP directives with extra braces, brackets and parens

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

10 years agoclang-format: Fix ObjC method expr in binary expressions.
Daniel Jasper [Wed, 18 Dec 2013 07:08:51 +0000 (07:08 +0000)]
clang-format: Fix ObjC method expr in binary expressions.

Before:
  bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa || [aaaaaaaa aaaaa] ==
                                                         aaaaaaaaaaaaaaaaaaaa);

After:
  bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa ||
            [aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaaaaa);

This fixes llvm.org/PR18271.

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

10 years agoUse arm-nacl-gnueabi instead of arm-nacl to match the previous tests.
Rafael Espindola [Wed, 18 Dec 2013 04:53:17 +0000 (04:53 +0000)]
Use arm-nacl-gnueabi instead of arm-nacl to match the previous tests.

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

10 years agoSplit this test into one per supporter nacl arch.
Rafael Espindola [Wed, 18 Dec 2013 04:35:56 +0000 (04:35 +0000)]
Split this test into one per supporter nacl arch.

Right now clang produces the same DataLayout for all of them, but it could, for
example, add 'n' specifications when the end architecture is given.

No functionality change, this should just make future changes easier to read.

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

10 years agoPrint the 'p' specification before the 'i' specification.
Rafael Espindola [Wed, 18 Dec 2013 04:14:53 +0000 (04:14 +0000)]
Print the 'p' specification before the 'i' specification.

No functionality change.

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

10 years agoFix comment-code function name mismatch
Hans Wennborg [Wed, 18 Dec 2013 01:39:59 +0000 (01:39 +0000)]
Fix comment-code function name mismatch

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

10 years agoclang-format-diff.py: add the OpenCL file extension
Alp Toker [Wed, 18 Dec 2013 00:58:58 +0000 (00:58 +0000)]
clang-format-diff.py: add the OpenCL file extension

It's handled correctly as a C-family language.

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

10 years agoObjectiveC. typo fix in my last patch,
Fariborz Jahanian [Wed, 18 Dec 2013 00:52:54 +0000 (00:52 +0000)]
ObjectiveC. typo fix in my last patch,
per Jordan's review.

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

10 years agoAdd a 's' specifications to AArch64.
Rafael Espindola [Tue, 17 Dec 2013 23:30:58 +0000 (23:30 +0000)]
Add a 's' specifications to AArch64.

This has no functionality change as clang adds explicit alignment info for
byval arguments. The only difference is that now the clang produced
DataLayout string for AArch64 is identical to the LLVM produced one.

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

10 years agoMove some more test-and-consumes over to TryConsumeToken()
Alp Toker [Tue, 17 Dec 2013 23:29:36 +0000 (23:29 +0000)]
Move some more test-and-consumes over to TryConsumeToken()

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

10 years agoObjctive-C. warn if dealloc is being overridden in
Fariborz Jahanian [Tue, 17 Dec 2013 22:44:28 +0000 (22:44 +0000)]
Objctive-C. warn if dealloc is being overridden in
a category implementation. // rdar://15397430

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

10 years agoDocumentation comment parsing: when checking if we have typedef to something
Dmitri Gribenko [Tue, 17 Dec 2013 22:22:14 +0000 (22:22 +0000)]
Documentation comment parsing: when checking if we have typedef to something
that we consider a function for the purposes of checking \param and \returns,
look through reference types.

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

10 years agoDocumentation comment parsing: allow \param and \returns on std::function,
Dmitri Gribenko [Tue, 17 Dec 2013 22:06:11 +0000 (22:06 +0000)]
Documentation comment parsing: allow \param and \returns on std::function,
boost::function and similar function-like objects

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

10 years agoNone of these attributes currently make use of an AST node, so setting ASTNode =...
Aaron Ballman [Tue, 17 Dec 2013 21:35:24 +0000 (21:35 +0000)]
None of these attributes currently make use of an AST node, so setting ASTNode = 0 to reduce complexity. No functional change intended.

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

10 years agoUse triples that match the -target-abi option.
Rafael Espindola [Tue, 17 Dec 2013 21:01:22 +0000 (21:01 +0000)]
Use triples that match the -target-abi option.

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

10 years agoUse the integrated assembler by default on FreeBSD/ppc and ppc64.
Roman Divacky [Tue, 17 Dec 2013 20:34:25 +0000 (20:34 +0000)]
Use the integrated assembler by default on FreeBSD/ppc and ppc64.

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

10 years ago[ms-cxxabi] The 'most derived' ctor parameter usually comes last
Reid Kleckner [Tue, 17 Dec 2013 19:46:40 +0000 (19:46 +0000)]
[ms-cxxabi] The 'most derived' ctor parameter usually comes last

Unlike Itanium's VTTs, the 'most derived' boolean or bitfield is the
last parameter for non-variadic constructors, rather than the second.
For variadic constructors, the 'most derived' parameter comes after the
'this' parameter.  This affects constructor calls and constructor decls
in a variety of places.

Reviewers: timurrrr

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

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

10 years agoDocumentation comment parsing: rearrange tests to clarify the intent of these tests
Dmitri Gribenko [Tue, 17 Dec 2013 19:45:12 +0000 (19:45 +0000)]
Documentation comment parsing: rearrange tests to clarify the intent of these tests

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

10 years agoFix line endings in microsoft-dtor-lookup-cxx11.cpp
Hans Wennborg [Tue, 17 Dec 2013 19:39:18 +0000 (19:39 +0000)]
Fix line endings in microsoft-dtor-lookup-cxx11.cpp

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

10 years agoObjective-C. Make diagnostics and fix-its consistent
Fariborz Jahanian [Tue, 17 Dec 2013 19:33:43 +0000 (19:33 +0000)]
Objective-C. Make diagnostics and fix-its consistent
when diagnosing casting of a cstring literal to
NSString in default and -fobjc-arc mode.
// rdar://14106083

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

10 years agoFix strange indentation and remove trailing whitespace on empty lines
Dmitri Gribenko [Tue, 17 Dec 2013 19:28:18 +0000 (19:28 +0000)]
Fix strange indentation and remove trailing whitespace on empty lines

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

10 years agoBring order to the OpenCL keywords
Alp Toker [Tue, 17 Dec 2013 18:17:46 +0000 (18:17 +0000)]
Bring order to the OpenCL keywords

Avoid the gratuitous repurposing of C++ keyword 'private' by using a keyword
alias.

Also attempt to document the OpenCL keywords based on scraps of information
found online.

The purpose of this commit is to reduce impact on the C++ parser.

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

10 years ago[ms-cxxabi] Don't do destructor check on declarations if the dtor is deleted
Hans Wennborg [Tue, 17 Dec 2013 17:49:22 +0000 (17:49 +0000)]
[ms-cxxabi] Don't do destructor check on declarations if the dtor is deleted

We would previously emit redundant diagnostics for the following code:

  struct S {
    virtual ~S() = delete;
    void operator delete(void*, int);
    void operator delete(void*, double);
  } s;

First we would check on ~S() and error about the ambigous delete functions,
and then we would error about using the deleted destructor.

If the destructor is deleted, there's no need to check it.

Also, move the check from Sema::ActOnFields to CheckCompleteCXXClass. These
are run at almost the same time, called from ActOnFinishCXXMemberSpecification.
However, CHeckCompleteCXXClass may mark a defaulted destructor as deleted, and
if that's the case we don't want to check it.

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

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

10 years agoFix indentation from r197490 plus some typos
Alp Toker [Tue, 17 Dec 2013 17:25:19 +0000 (17:25 +0000)]
Fix indentation from r197490 plus some typos

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

10 years agoRemove -f128:128 from the DataLayout strings. It is the default.
Rafael Espindola [Tue, 17 Dec 2013 16:07:35 +0000 (16:07 +0000)]
Remove -f128:128 from the DataLayout strings. It is the default.

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

10 years agoThe PS3 is a ppc64 and has 64 bit registers. Update DataLayout accordingly.
Rafael Espindola [Tue, 17 Dec 2013 15:40:00 +0000 (15:40 +0000)]
The PS3 is a ppc64 and has 64 bit registers. Update DataLayout accordingly.

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

10 years agoRemove -f16:16:32 from the XCore DataLayout string.
Rafael Espindola [Tue, 17 Dec 2013 14:34:42 +0000 (14:34 +0000)]
Remove -f16:16:32 from the XCore DataLayout string.

This makes it identical to the string llvm produces.

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

10 years agoRefactor and micro-optimize ConsumeToken()
Alp Toker [Tue, 17 Dec 2013 14:12:37 +0000 (14:12 +0000)]
Refactor and micro-optimize ConsumeToken()

1) Introduce TryConsumeToken() to handle the common test-and-consume pattern.
   This brings about readability improvements in the parser and optimizes to avoid
   redundant checks in the common case.

2) Eliminate the ConsumeCodeCompletionTok special case from ConsumeToken(). This
   was used by only one caller which has been switched over to the more
   appropriate ConsumeCodeCompletionToken() function.

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

10 years agoSimplify RevertibleTypeTraits as a form of contextual keyword
Alp Toker [Tue, 17 Dec 2013 14:12:30 +0000 (14:12 +0000)]
Simplify RevertibleTypeTraits as a form of contextual keyword

Now that we emit diagnostics for keyword-as-identifier hacks (-Wkeyword-compat)
we can go ahead and simplify some of the old revertible keyword support.

This commit adds a TryIdentKeywordUpgrade() function to mirror the recently
added TryKeywordIdentFallback() and uses it to replace the hard-coded list of
REVERTIBLE_TYPE_TRAITs.

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

10 years agoUpdate comment of changed parameter of ModuleMap constructor.
Daniel Jasper [Tue, 17 Dec 2013 13:21:13 +0000 (13:21 +0000)]
Update comment of changed parameter of ModuleMap constructor.

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

10 years agoclang-format: Don't adapt local format to macros.
Daniel Jasper [Tue, 17 Dec 2013 12:38:55 +0000 (12:38 +0000)]
clang-format: Don't adapt local format to macros.

Formatting this:
   void f() { // 1 space initial indent.
      int i;
  #define A   \
      int i;  \
     int j;
        int k; // Format this line.
   }
   void f() {
       #define A 1 // Format this line.
   }

Before:
   void f() { // 1 space initial indent.
      int i;
  #define A   \
      int i;  \
     int j;
     int k;  // Format this line.
   }
   void f() {
   #define A 1  // Format this line.
   }

After:
   void f() { // 1 space initial indent.
      int i;
  #define A   \
      int i;  \
     int j;
      int k;  // Format this line.
   }
   void f() {
  #define A 1  // Format this line.
   }

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

10 years agoLIBRARY_PATH environment variable should only be supported on a native compiler.
Richard Barton [Tue, 17 Dec 2013 11:11:25 +0000 (11:11 +0000)]
LIBRARY_PATH environment variable should only be supported on a native compiler.

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

10 years agoAdd missing file from r197485.
Daniel Jasper [Tue, 17 Dec 2013 10:47:49 +0000 (10:47 +0000)]
Add missing file from r197485.

(Yes, the irony is not lost on me :-) ).

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

10 years agoModules: Don't warn upon missing headers while reading the module map.
Daniel Jasper [Tue, 17 Dec 2013 10:31:37 +0000 (10:31 +0000)]
Modules: Don't warn upon missing headers while reading the module map.

Instead, mark the module as unavailable so that clang errors as soon as
someone tries to build this module.

This works towards the long-term goal of not stat'ing the header files at all
while reading the module map and instead read them only when the module is
being built (there is a corresponding FIXME in parseHeaderDecl()).  However, it
seems non-trivial to get there and this unblock us and moves us into the right
direction.

Also changed the implementation to reuse the same DiagnosticsEngine.

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

10 years ago[CMake][Standalone] Import LLVM_LIT_TOOLS_DIR.
NAKAMURA Takumi [Tue, 17 Dec 2013 04:14:26 +0000 (04:14 +0000)]
[CMake][Standalone] Import LLVM_LIT_TOOLS_DIR.

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

10 years ago[CMake][Standalone] Fix llvm-tblgen's directory to use LLVM_TOOLS_BINARY_DIR instead...
NAKAMURA Takumi [Tue, 17 Dec 2013 04:14:22 +0000 (04:14 +0000)]
[CMake][Standalone] Fix llvm-tblgen's directory to use LLVM_TOOLS_BINARY_DIR instead of LLVM_BINARY_DIR.

LLVM_BINARY_DIR points OBJROOT.

FIXME: llvm-config should show *real* bindir with --bindir.

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

10 years ago[CMake][Standalone] Fixup r197395 for standalone build.
NAKAMURA Takumi [Tue, 17 Dec 2013 04:14:17 +0000 (04:14 +0000)]
[CMake][Standalone] Fixup r197395 for standalone build.

Standalone scripts shall be rewritten.

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

10 years agoASTContext: Refactor implicit record creation
Alp Toker [Tue, 17 Dec 2013 01:22:38 +0000 (01:22 +0000)]
ASTContext: Refactor implicit record creation

Tidy up built-in record creation to reduce code duplication.

Continuation of r197336.

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

10 years agoAdd a test for -fno-diagnostics-fixit-info
Dmitri Gribenko [Tue, 17 Dec 2013 01:19:19 +0000 (01:19 +0000)]
Add a test for -fno-diagnostics-fixit-info

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

10 years agoObjectiveC migrator. Fixes a bug when protocol
Fariborz Jahanian [Tue, 17 Dec 2013 01:01:33 +0000 (01:01 +0000)]
ObjectiveC migrator. Fixes a bug when protocol
conformance is inferred. // rdar://15515206

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

10 years agoFor -Wconsumed, walk the namespaces to find if the top most namespace is "std"
Richard Trieu [Tue, 17 Dec 2013 00:40:40 +0000 (00:40 +0000)]
For -Wconsumed, walk the namespaces to find if the top most namespace is "std"
to determine if a move function is the std::move function.  This allows functions
like std::__1::move to also be treated a the move function.

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

10 years agoReorder these DataLayout entries to match the order LLVM uses.
Rafael Espindola [Tue, 17 Dec 2013 00:04:48 +0000 (00:04 +0000)]
Reorder these DataLayout entries to match the order LLVM uses.

This completes the cleanup/refactoring of DataLayout on the clang side. Next
is figuring out the differences between the llvm and clang produced strings

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

10 years agoclang/lib/Headers/CMakeLists.txt: Revert part of r197395. It should not be staged...
NAKAMURA Takumi [Tue, 17 Dec 2013 00:02:38 +0000 (00:02 +0000)]
clang/lib/Headers/CMakeLists.txt: Revert part of r197395. It should not be staged yet.

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

10 years agoThe preferred alignment defaults to the ABI one. Omit it if it is the same.
Rafael Espindola [Mon, 16 Dec 2013 23:27:41 +0000 (23:27 +0000)]
The preferred alignment defaults to the ABI one. Omit it if it is the same.

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

10 years agoRemove another default I missed before.
Rafael Espindola [Mon, 16 Dec 2013 23:03:23 +0000 (23:03 +0000)]
Remove another default I missed before.

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

10 years agoObjectiveC. Further improvements of use
Fariborz Jahanian [Mon, 16 Dec 2013 22:54:37 +0000 (22:54 +0000)]
ObjectiveC. Further improvements of use
of objc_bridge_related attribute; eliminate
unnecessary diagnostics which is issued elsewhere,
fixit now produces a valid AST tree per convention.
This results in some simplification in handling of
this attribute as well. // rdar://15499111

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

10 years agoClang DataLayout string cleanup: don't print other defaults.
Rafael Espindola [Mon, 16 Dec 2013 22:50:41 +0000 (22:50 +0000)]
Clang DataLayout string cleanup: don't print other defaults.

I missed these in previous commits.

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

10 years agoRemove dead data.
Rafael Espindola [Mon, 16 Dec 2013 22:15:35 +0000 (22:15 +0000)]
Remove dead data.

The f80:128:128 was followed by a f80:32:32 and so never used. Looks like this
was there since r91746.

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

10 years agoClang DataLayout string cleanup: don't print the pointer defaults.
Rafael Espindola [Mon, 16 Dec 2013 21:59:14 +0000 (21:59 +0000)]
Clang DataLayout string cleanup: don't print the pointer defaults.

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

10 years agoClang DataLayout string cleanup: don't print the aggregate defaults.
Rafael Espindola [Mon, 16 Dec 2013 21:51:30 +0000 (21:51 +0000)]
Clang DataLayout string cleanup: don't print the aggregate defaults.

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

10 years agoFix PR18260 - Make std::move handling in -Wconsumed only trigger on std::move
Richard Trieu [Mon, 16 Dec 2013 21:41:30 +0000 (21:41 +0000)]
Fix PR18260 - Make std::move handling in -Wconsumed only trigger on std::move

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

10 years agoClang DataLayout string cleanup: don't print the vector defaults.
Rafael Espindola [Mon, 16 Dec 2013 21:38:22 +0000 (21:38 +0000)]
Clang DataLayout string cleanup: don't print the vector defaults.

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

10 years agoIn a standalone Clang build, default to building tests, like LLVM does
Dmitri Gribenko [Mon, 16 Dec 2013 20:54:13 +0000 (20:54 +0000)]
In a standalone Clang build, default to building tests, like LLVM does

LLVM_INCLUDE_TESTS is set in the top-level LLVM CMakeLists, which is not being
executed when Clang is built in a separate directory.

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

10 years agoClang DataLayout string cleanup: don't print the FP defaults.
Rafael Espindola [Mon, 16 Dec 2013 20:34:33 +0000 (20:34 +0000)]
Clang DataLayout string cleanup: don't print the FP defaults.

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

10 years agoClang DataLayout string cleanup: don't print the integer defaults.
Rafael Espindola [Mon, 16 Dec 2013 20:21:07 +0000 (20:21 +0000)]
Clang DataLayout string cleanup: don't print the integer defaults.

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

10 years agoMisc test cleanups.
Rafael Espindola [Mon, 16 Dec 2013 19:53:26 +0000 (19:53 +0000)]
Misc test cleanups.

* tbaa-struct.cpp always has a 64 bit pointer.
* f32:32:32, f64:64:64 and f128:128:128 are defaults, don't assume they are
  printed.

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

10 years agoRevert "Maybe add new warning for shadowing simple tag types"
Kaelyn Uhrain [Mon, 16 Dec 2013 19:25:47 +0000 (19:25 +0000)]
Revert "Maybe add new warning for shadowing simple tag types"

This reverts commit 2b43f500cfea10a8c59c986dcfc24fd08eecc77d.

This was accidentally committed because I failed to notice my client
wasn't clean prior to submitting a fix for a crasher.

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

10 years agoMake Sema::BuildCXXNestedNameSpecifier correctly clear the previous
Kaelyn Uhrain [Mon, 16 Dec 2013 19:19:18 +0000 (19:19 +0000)]
Make Sema::BuildCXXNestedNameSpecifier correctly clear the previous
CXXScopeSpec when necessary while performing typo correction. This fixes
the crash reported in PR18213 (the problem existed since r185487, and
r193020 made it easier to hit).

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

10 years agoMaybe add new warning for shadowing simple tag types
Kaelyn Uhrain [Mon, 16 Dec 2013 19:19:13 +0000 (19:19 +0000)]
Maybe add new warning for shadowing simple tag types

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

10 years agoSupport EABIHF environment on ARM.
Joerg Sonnenberger [Mon, 16 Dec 2013 19:16:04 +0000 (19:16 +0000)]
Support EABIHF environment on ARM.

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

10 years agoGNUEABIHF is the same as GNUEABI for anything not float/double related,
Joerg Sonnenberger [Mon, 16 Dec 2013 18:30:28 +0000 (18:30 +0000)]
GNUEABIHF is the same as GNUEABI for anything not float/double related,
so use the same exception size as GNUEABI does.

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

10 years ago[AArch64] Fix v1fx patterns for Floating-point Multiply Extend and Floating-point...
Chad Rosier [Mon, 16 Dec 2013 18:29:54 +0000 (18:29 +0000)]
[AArch64] Fix v1fx patterns for Floating-point Multiply Extend and Floating-point Compare to Zero.

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

10 years agoAdd bit_FXSAVE as an alias for bit_FXSR, for gcc compat.
Nico Weber [Mon, 16 Dec 2013 17:54:57 +0000 (17:54 +0000)]
Add bit_FXSAVE as an alias for bit_FXSR, for gcc compat.

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

10 years ago[CMake] Introduce CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR.
NAKAMURA Takumi [Mon, 16 Dec 2013 16:03:21 +0000 (16:03 +0000)]
[CMake] Introduce CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR.

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