]> granicus.if.org Git - clang/log
clang
11 years agoFix test to work on Linux hosts by specifying triple.
Tim Northover [Thu, 3 Oct 2013 14:29:54 +0000 (14:29 +0000)]
Fix test to work on Linux hosts by specifying triple.

Thought I'd checked that before

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

11 years agoARM: *-*-darwin-eabi triples should use AAPCS.
Tim Northover [Thu, 3 Oct 2013 14:23:28 +0000 (14:23 +0000)]
ARM: *-*-darwin-eabi triples should use AAPCS.

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

11 years agoGracefully (and correctly) handle init of multiple union members
Matthew Curtis [Thu, 3 Oct 2013 12:14:24 +0000 (12:14 +0000)]
Gracefully (and correctly) handle init of multiple union members

We now emit warnings when doing so and code generation is consistent
with GCC. Note that the C99 spec is unclear as to the precise
behavior.

See also ...
Bug:
  http://llvm.org/bugs/show_bug.cgi?id=16644 and

cfe-dev discussion:
  http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-September/031918.html

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

11 years agoTeach TreeTransform and family how to transform generic lambdas within templates...
Faisal Vali [Thu, 3 Oct 2013 06:29:33 +0000 (06:29 +0000)]
Teach TreeTransform and family how to transform generic lambdas within templates and nested within themselves.

This does not yet include capturing (that is next).

Please see test file for examples.

This patch was LGTM'd by Doug:
http://llvm-reviews.chandlerc.com/D1784
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130930/090048.html

When I first committed this patch - a bunch of buildbots were unable to compile the code that VS2010 seemed to compile.  Seems like there was a dependency on Sema/Template.h which VS did not seem to need, but I have now added for the other compilers.  It still compiles on Visual Studio 2010 - lets hope the buildbots remain quiet (please!)

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

11 years agoExtract ABI-specific parts of MangleContext into separate classes
Timur Iskhodzhanov [Thu, 3 Oct 2013 06:26:13 +0000 (06:26 +0000)]
Extract ABI-specific parts of MangleContext into separate classes

Reviewed at http://llvm-reviews.chandlerc.com/D1807

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

11 years agoRevert changes from the nested lambdas commit till i figure out
Faisal Vali [Thu, 3 Oct 2013 05:58:37 +0000 (05:58 +0000)]
Revert changes from the nested lambdas commit till i figure out
why the buildbots are failing.

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

11 years agoTeach TreeTransform and family how to transform generic lambdas within templates...
Faisal Vali [Thu, 3 Oct 2013 05:32:48 +0000 (05:32 +0000)]
Teach TreeTransform and family how to transform generic lambdas within templates and nested within themselves.

This does not yet include capturing (that is next).

Please see test file for examples.

This patch was LGTM'd by Doug:
http://llvm-reviews.chandlerc.com/D1784

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

11 years agoChange __builtin_ia32_bextri_u64 to take an i64imm to match up with LLVM backend...
Craig Topper [Thu, 3 Oct 2013 04:21:19 +0000 (04:21 +0000)]
Change __builtin_ia32_bextri_u64 to take an i64imm to match up with LLVM backend changes.

An explicit cast is still needed in tbmintrin.h to convert any big integer down to i32imm.

Patch from Yunzhong Gao.

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

11 years agoObjectiveC migrator: Add individual options and
Fariborz Jahanian [Wed, 2 Oct 2013 22:49:59 +0000 (22:49 +0000)]
ObjectiveC migrator: Add individual options and
enable them for distinct feature migration.
// rdar://15003157

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

11 years agoObjectiveC migrator: Add more options one for each
Fariborz Jahanian [Wed, 2 Oct 2013 21:58:13 +0000 (21:58 +0000)]
ObjectiveC migrator: Add more options one for each
kind of migration. // rdar://15003157

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

11 years agoObjectiveC migrator. Starting distiguising different
Fariborz Jahanian [Wed, 2 Oct 2013 21:32:39 +0000 (21:32 +0000)]
ObjectiveC migrator. Starting distiguising different
migrations under their own option.
wip and // rdar://15003157

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

11 years agoUse the CGCXXABI member on CodeGenTypes.
Mark Lacey [Wed, 2 Oct 2013 20:35:23 +0000 (20:35 +0000)]
Use the CGCXXABI member on CodeGenTypes.

CodeGenTypes already has a reference to a CGCXXABI. Use this directly
rather than going through CodeGenModule to get to the same information.

This is consistent with other references to CGCXXABI in CodeGenTypes
functions defined in CGCall.cpp.

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

11 years agoSpeed up CorrectTypo by avoiding lookups on unreasonable candidates.
Kaelyn Uhrain [Wed, 2 Oct 2013 18:26:35 +0000 (18:26 +0000)]
Speed up CorrectTypo by avoiding lookups on unreasonable candidates.

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

11 years agoObjective-C migrator. Simplify migrator option
Fariborz Jahanian [Wed, 2 Oct 2013 17:08:12 +0000 (17:08 +0000)]
Objective-C migrator. Simplify migrator option
processing in preparation for adding several more
options. // rdar://15003157

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

11 years agoFix crashes when creating global instances of polymorphic classes without fields
Timur Iskhodzhanov [Wed, 2 Oct 2013 16:03:16 +0000 (16:03 +0000)]
Fix crashes when creating global instances of polymorphic classes without fields

Reviewed at http://llvm-reviews.chandlerc.com/D1795

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

11 years agoAccept #pragma warning(push, 0) without warning
Reid Kleckner [Wed, 2 Oct 2013 15:19:23 +0000 (15:19 +0000)]
Accept #pragma warning(push, 0) without warning

This partially addresses PR17435, but it doesn't actually implement the
pragma.  If we implement it, we should map levels 1-4 to something like
-Wall and level 0 to something like -w.

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

11 years agoclang-format: Fix clang-format-diff.py according to diff specification.
Daniel Jasper [Wed, 2 Oct 2013 13:59:03 +0000 (13:59 +0000)]
clang-format: Fix clang-format-diff.py according to diff specification.

Patch by Alp Toker. Many thanks!

Original descriptions:
clang-format-diff incorrectly modifies unchanged lines due to an error
in diff parsing.

The unified diff format has a default line change count of 1, and 0 may
be specified to indicate that no lines have been added. This patch
updates the parser to accurately reflect the diff specification.

This also has the benefit of stabilising the operation so it will
produce the same output when run multiple times on the same changeset,
which was previously not the case.

No tests added because this script is not currently tested (though we
should look into that!)

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

11 years agoFix gcc -Wunused-but-set-variable warning in r191634.
Patrik Hagglund [Wed, 2 Oct 2013 10:59:08 +0000 (10:59 +0000)]
Fix gcc -Wunused-but-set-variable warning in r191634.

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

11 years ago[ARM] Add a builtin to allow you to use the 'sevl' instruction.
Joey Gouly [Wed, 2 Oct 2013 10:00:18 +0000 (10:00 +0000)]
[ARM] Add a builtin to allow you to use the 'sevl' instruction.

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

11 years agoFix build breakage, missed committing a chunk of a patch.
Nick Lewycky [Wed, 2 Oct 2013 02:33:11 +0000 (02:33 +0000)]
Fix build breakage, missed committing a chunk of a patch.

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

11 years agoThread a SourceLocation into the EmitCheck for "load_invalid_value". This occurs
Nick Lewycky [Wed, 2 Oct 2013 02:29:49 +0000 (02:29 +0000)]
Thread a SourceLocation into the EmitCheck for "load_invalid_value". This occurs
when scalars are loaded / undergo lvalue-to-rvalue conversion.

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

11 years ago[analyzer] Add missing return after function pointer null check.
Jordan Rose [Wed, 2 Oct 2013 01:20:28 +0000 (01:20 +0000)]
[analyzer] Add missing return after function pointer null check.

Also add some tests that there is actually a message and that the bug is
actually a hard error. This actually behaved correctly before, because:

- addTransition() doesn't actually add a transition if the new state is null;
  it assumes you want to propagate the predecessor forward and does nothing.
- generateSink() is called in order to emit a bug report.
- If at least one new node has been generated, the predecessor node is /not/
  propagated forward.

But now it's spelled out explicitly.

Found by Richard Mazorodze, who's working on a patch that may require this.

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

11 years agoDebug Info: update testing cases when the derived-from field of a
Manman Ren [Tue, 1 Oct 2013 23:46:19 +0000 (23:46 +0000)]
Debug Info: update testing cases when the derived-from field of a
DW_TAG_pointer_type is updated to use DITypeRef.

Paired commit with r191800.

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

11 years agoFix a typo suggestion regression introduced by r191544.
Kaelyn Uhrain [Tue, 1 Oct 2013 22:00:28 +0000 (22:00 +0000)]
Fix a typo suggestion regression introduced by r191544.

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

11 years agoNo functionality change. Reflow lines that could fit on one line. Break lines
Nick Lewycky [Tue, 1 Oct 2013 21:51:38 +0000 (21:51 +0000)]
No functionality change. Reflow lines that could fit on one line. Break lines
that had 80-column violations. Remove spurious emacs mode markers on .cpp files.

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

11 years agoObjectiveC migrator: When doing migration, migrator must suggest
Fariborz Jahanian [Tue, 1 Oct 2013 21:16:29 +0000 (21:16 +0000)]
ObjectiveC migrator: When doing migration, migrator must suggest
migration of headers which have become system headers by user having put
the .system_framework in the sdk directory.
// rdar://15066802

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

11 years agoRevert commits r190613, r190560 and r190557.
Rafael Espindola [Tue, 1 Oct 2013 17:31:40 +0000 (17:31 +0000)]
Revert commits r190613, r190560 and r190557.

The added a cmake invocation to null builds, making them a lot slower.

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

11 years agoFixing implementation of bittestandset in Intrin.h.
Warren Hunt [Tue, 1 Oct 2013 17:12:40 +0000 (17:12 +0000)]
Fixing implementation of bittestandset in Intrin.h.

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

11 years agoFixed replacements for files with relative paths are not applied.
Ariel J. Bernal [Tue, 1 Oct 2013 14:59:00 +0000 (14:59 +0000)]
Fixed replacements for files with relative paths are not applied.

Replacements were no applied when using a compilation database with paths in the
compilation command relative to the compile directory. This patch makes those
paths abosulte.

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

11 years agoRefactoring: split addTokenToState into two methods.
Alexander Kornienko [Tue, 1 Oct 2013 14:41:18 +0000 (14:41 +0000)]
Refactoring: split addTokenToState into two methods.

Summary: Pure refactoring, should be no semantic changes.

Reviewers: djasper

Reviewed By: djasper

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

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

11 years agoTypo in ARM __attribute__((interrupt)) documentation
Tim Northover [Tue, 1 Oct 2013 14:39:43 +0000 (14:39 +0000)]
Typo in ARM __attribute__((interrupt)) documentation

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

11 years agoImplement ARM GNU-style interrupt attribute
Tim Northover [Tue, 1 Oct 2013 14:34:25 +0000 (14:34 +0000)]
Implement ARM GNU-style interrupt attribute

This attribute allows users to use a modified C or C++ function as an ARM
exception-handling function and, with care, to successfully return control to
user-space after the issue has been dealt with.

rdar://problem/14207019

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

11 years agoMove checkStringLiteralArgument into Sema class
Tim Northover [Tue, 1 Oct 2013 14:34:18 +0000 (14:34 +0000)]
Move checkStringLiteralArgument into Sema class

It's a useful function to have around for target-specific attributes.

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

11 years agoRun the -cxx-abi test in 32-bit mode as the 64-bit one crashes on the bots
Timur Iskhodzhanov [Tue, 1 Oct 2013 14:10:03 +0000 (14:10 +0000)]
Run the -cxx-abi test in 32-bit mode as the 64-bit one crashes on the bots

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

11 years agoAuthor a FIXME in a test now that PR12784 is fixed
Timur Iskhodzhanov [Tue, 1 Oct 2013 13:56:35 +0000 (13:56 +0000)]
Author a FIXME in a test now that PR12784 is fixed

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

11 years ago[ARM] Add -mfpu=none option to the driver.
Amara Emerson [Tue, 1 Oct 2013 10:20:54 +0000 (10:20 +0000)]
[ARM] Add -mfpu=none option to the driver.

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

11 years ago[OpenMP] Added parsing and semantic analysis for firstprivate clause
Alexey Bataev [Tue, 1 Oct 2013 05:32:34 +0000 (05:32 +0000)]
[OpenMP] Added parsing and semantic analysis for firstprivate clause

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

11 years agoFix computation of linkage within nested lambdas.
Faisal Vali [Tue, 1 Oct 2013 02:51:53 +0000 (02:51 +0000)]
Fix computation of linkage within nested lambdas.

When nested C++11 lambdas are used in NSDMI's - this patch prevents infinite recursion by computing the linkage of any nested lambda by determining the linkage of the outermost enclosing lambda (which might inherit its linkage from its parent).

See http://llvm-reviews.chandlerc.com/D1783 for Doug's approval.

[On a related note, I need this patch so as to pass tests of transformations of nested lambdas returned from member functions]

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

11 years agoFix typo correction usage of SemaAccess.cpp.
Eli Friedman [Tue, 1 Oct 2013 02:44:48 +0000 (02:44 +0000)]
Fix typo correction usage of SemaAccess.cpp.

When we check access for lookup results, make sure we propagate the
result's access to the access control APIs; this can be different from
the natural access of the declaration depending on the path used by the lookup.

PR17394.

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

11 years agoRevert r191586 and r191695. They cause crashes when building with
Richard Smith [Tue, 1 Oct 2013 02:20:23 +0000 (02:20 +0000)]
Revert r191586 and r191695. They cause crashes when building with
-relaxed-aliasing.

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

11 years agoTweak changes in r186464 to avoid a crash.
Eli Friedman [Tue, 1 Oct 2013 00:28:29 +0000 (00:28 +0000)]
Tweak changes in r186464 to avoid a crash.

Currently, IR generation can't handle file-scope compound literals with
non-constant initializers in C++.

Fixes PR17415 (the first crash in the bug).

(We should probably change (T){1,2,3} to use the same codepath as T{1,2,3} in
C++ eventually, given that the semantics of the latter are actually defined by
the standard.)

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

11 years agoRemove support for arrays of runtime bound in C++1y, now they have been voted
Richard Smith [Tue, 1 Oct 2013 00:19:43 +0000 (00:19 +0000)]
Remove support for arrays of runtime bound in C++1y, now they have been voted
out of the working paper. This reverts r179962 and r179992.

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

11 years agoFix PR 12730: Add _GCC_HAVE_SYNC_COMPARE_AND_SWAP macros for ARM
Weiming Zhao [Mon, 30 Sep 2013 22:51:32 +0000 (22:51 +0000)]
Fix PR 12730: Add _GCC_HAVE_SYNC_COMPARE_AND_SWAP macros for ARM

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

11 years agoChanging __X86_64__ to __x86_64__ in Intrin.h.
Warren Hunt [Mon, 30 Sep 2013 21:08:05 +0000 (21:08 +0000)]
Changing __X86_64__ to __x86_64__ in Intrin.h.

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

11 years agoTurn struct-path aware TBAA on by default.
Manman Ren [Mon, 30 Sep 2013 19:35:19 +0000 (19:35 +0000)]
Turn struct-path aware TBAA on by default.

Use -no-struct-path-tbaa to turn it off.

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

11 years agoRemove unused variable introduced in 191666
David Blaikie [Mon, 30 Sep 2013 17:30:41 +0000 (17:30 +0000)]
Remove unused variable introduced in 191666

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

11 years agoAdding intrinsics to the clang front end for the x86 TBM instruction set.
Yunzhong Gao [Mon, 30 Sep 2013 17:25:14 +0000 (17:25 +0000)]
Adding intrinsics to the clang front end for the x86 TBM instruction set.

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

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

11 years agoMoving style option formatting to libFormat
Edwin Vane [Mon, 30 Sep 2013 13:31:48 +0000 (13:31 +0000)]
Moving style option formatting to libFormat

The help text for clang-format's -style option and the function that processes
its value is moved to libFormat in this patch. The goal is to enable other
tools that use libFormat and also have a -style option to behave consistently
with clang-format.

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

11 years agoFix use-after-free.
Manuel Klimek [Mon, 30 Sep 2013 13:29:01 +0000 (13:29 +0000)]
Fix use-after-free.

TemplateDeclInstantiator takes the MultiLevelArgumentList by const-ref
and stores a const-ref member. Thus, we must not pass a temporary
into the constructor.

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

11 years agoclang-format: Improve alignment after 'return'.
Daniel Jasper [Mon, 30 Sep 2013 08:29:03 +0000 (08:29 +0000)]
clang-format: Improve alignment after 'return'.

Previously, comments, could totally confuse it.

Before:
  return
             // true if code is one of a or b.
             code == a ||
         code == b;

After:
  return
      // true if code is one of a or b.
      code == a || code == b;

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

11 years agoAdd a bunch of other GCC '-f' options and ignore them. This covers every
Chandler Carruth [Mon, 30 Sep 2013 07:46:08 +0000 (07:46 +0000)]
Add a bunch of other GCC '-f' options and ignore them. This covers every
such option I've been able to find in the wild in our build system.

Note that I haven't added test cases for this. I can do so if folks
want, but they're *really* boring considering that this is all generated
code to parse and ignore unsued options.

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

11 years agoSwitch one of the ignored boolean flag multiclasses to not have an 'f'
Chandler Carruth [Mon, 30 Sep 2013 03:55:06 +0000 (03:55 +0000)]
Switch one of the ignored boolean flag multiclasses to not have an 'f'
prefix. Sort the ignored boolean 'f' flags at the bottom of this file.
No functionality changed.

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

11 years agoSemaTemplateDeduction.cpp: Suppress a warning. [-Wunused-variable]
NAKAMURA Takumi [Mon, 30 Sep 2013 00:14:27 +0000 (00:14 +0000)]
SemaTemplateDeduction.cpp: Suppress a warning. [-Wunused-variable]

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

11 years agoRevert the linkage fix.
Faisal Vali [Sun, 29 Sep 2013 20:27:06 +0000 (20:27 +0000)]
Revert the linkage fix.
I got a bunch of buildbot failures that i don't understand - sorry.

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

11 years agoRemove an unnecessary overload from ASTLambda.h
Faisal Vali [Sun, 29 Sep 2013 20:15:45 +0000 (20:15 +0000)]
Remove an unnecessary overload from ASTLambda.h
As Richard pointed out to me, dyn_cast is very cheap - there is no real benefit from adding cluttery overloads to only avoid that cast.
No functionality change.

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

11 years agoFix computation of linkage within nested lambdas.
Faisal Vali [Sun, 29 Sep 2013 20:00:15 +0000 (20:00 +0000)]
Fix computation of linkage within nested lambdas.
 When nested lambdas are used in NSDMI's - this prevents infinite recursion.

See http://llvm-reviews.chandlerc.com/D1783 for Doug's approval regarding the code, and then request for some tests.

[On a related note, I need this patch so as to pass tests of transformations of nested lambdas returned from member functions]

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

11 years agoAdd section on VS integration to the ClangFormat documentation.
Manuel Klimek [Sun, 29 Sep 2013 17:49:50 +0000 (17:49 +0000)]
Add section on VS integration to the ClangFormat documentation.

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

11 years agoFix windows newlines :(
Faisal Vali [Sun, 29 Sep 2013 17:08:32 +0000 (17:08 +0000)]
Fix windows newlines :(

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

11 years agoFix misspelling of -fmodules-decluse.
Daniel Jasper [Sun, 29 Sep 2013 12:40:54 +0000 (12:40 +0000)]
Fix misspelling of -fmodules-decluse.

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

11 years agoclang-format: Fix assertion on incomplete string literals.
Daniel Jasper [Sun, 29 Sep 2013 12:02:57 +0000 (12:02 +0000)]
clang-format: Fix assertion on incomplete string literals.

Before, this could would lead to an assert:
  llvm::errs() << "
               << a;

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

11 years agoImplement conversion to function pointer for generic lambdas without captures.
Faisal Vali [Sun, 29 Sep 2013 08:45:24 +0000 (08:45 +0000)]
Implement conversion to function pointer for generic lambdas without captures.

The general strategy is to create template versions of the conversion function and static invoker and then during template argument deduction of the conversion function, create the corresponding call-operator and static invoker specializations, and when the conversion function is marked referenced generate the body of the conversion function using the corresponding static-invoker specialization.  Similarly, Codegen does something similar - when asked to emit the IR for a specialized static invoker of a generic lambda, it forwards emission to the corresponding call operator.

This patch has been reviewed in person both by Doug and Richard.  Richard gave me the LGTM.

A few minor changes:
  - per Richard's request i added a simple check to gracefully inform that captures (init, explicit or default) have not been added to generic lambdas just yet (instead of the assertion violation).
  - I removed a few lines of code that added the call operators instantiated parameters to the currentinstantiationscope. Not only did it not handle parameter packs, but it is more relevant in the patch for nested lambdas which will follow this one, and fix that problem more comprehensively.
  - Doug had commented that the original implementation strategy of using the TypeSourceInfo of the call operator to create the static-invoker was flawed and allowed const as a member qualifier to creep into the type of the static-invoker.  I currently kludge around it - but after my initial discussion with Doug, with a follow up session with Richard, I have added a FIXME so that a more elegant solution that involves the use of TrivialTypeSourceInfo call followed by the correct wiring of the template parameters to the functionprototypeloc is forthcoming.

Thanks!

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

11 years agoAdd character set related __STDC_* definitions.
Ed Schouten [Sun, 29 Sep 2013 07:54:52 +0000 (07:54 +0000)]
Add character set related __STDC_* definitions.

Clang uses UTF-16 and UTF-32 for its char16_t's and char32_t's
exclusively. This means that we can define __STDC_UTF_16__ and
__STDC_UTF_32__ unconditionally.

While there, define __STDC_MB_MIGHT_NEQ_WC__ for FreeBSD. FreeBSD's
wchar_t's don't encode characters as ISO-10646; the encoding depends on
the locale used. Because the character set used might not be a superset
of ASCII, we must define __STDC_MB_MIGHT_NEQ_WC__.

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

11 years agoImplement C++1y sized deallocation (n3778). This is not enabled by -std=c++1y;
Richard Smith [Sun, 29 Sep 2013 04:40:38 +0000 (04:40 +0000)]
Implement C++1y sized deallocation (n3778). This is not enabled by -std=c++1y;
instead, it's enabled by the -cc1 flag -fsized-deallocation, until we sort out
the backward-compatibility issues.

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

11 years agoRemove commented-out entry for ARBs, they're not in C++1y any more.
Richard Smith [Sat, 28 Sep 2013 19:09:34 +0000 (19:09 +0000)]
Remove commented-out entry for ARBs, they're not in C++1y any more.

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

11 years agoThe second parameter of nexttoward is always long double.
Benjamin Kramer [Sat, 28 Sep 2013 17:41:03 +0000 (17:41 +0000)]
The second parameter of nexttoward is always long double.

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

11 years agoDocumentation: minor fixes/improvements to documentation of DependentScopeDeclRefExpr.
James Dennett [Sat, 28 Sep 2013 16:30:01 +0000 (16:30 +0000)]
Documentation: minor fixes/improvements to documentation of DependentScopeDeclRefExpr.

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

11 years agoMake helper function static.
Benjamin Kramer [Sat, 28 Sep 2013 15:08:41 +0000 (15:08 +0000)]
Make helper function static.

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

11 years agoRefactor comment merging.
Benjamin Kramer [Sat, 28 Sep 2013 15:06:27 +0000 (15:06 +0000)]
Refactor comment merging.

- We scan for whitespace between comments anyways, remember any newlines seen
  along the way.
- Use this newline number to decide whether two comments are adjacent.
- Since the newline check is now free remove the caching and unused code.
- Remove unnecessary boolean state from the comment list.
- No behavioral change.

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

11 years agoSeparate construction of bi-arch path suffix from construction of
Simon Atanasyan [Sat, 28 Sep 2013 13:45:11 +0000 (13:45 +0000)]
Separate construction of bi-arch path suffix from construction of
multi-library path suffix.

The code calculates MIPS toolchain specific multi-lib path suffixes like
mips16/soft-float/el is moved to the separate function
findMultiLibSuffix(). This function called during GCC installation
detection and result is stored for the future using.

The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1738

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

11 years agoAdd compat/extension warnings for init captures.
Richard Smith [Sat, 28 Sep 2013 05:38:27 +0000 (05:38 +0000)]
Add compat/extension warnings for init captures.

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

11 years agoAdd extra testing for init-captures.
Richard Smith [Sat, 28 Sep 2013 05:23:21 +0000 (05:23 +0000)]
Add extra testing for init-captures.

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

11 years agoMark lambda init-captures as complete.
Richard Smith [Sat, 28 Sep 2013 04:37:56 +0000 (04:37 +0000)]
Mark lambda init-captures as complete.

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

11 years agoSwitch from putting init capture VarDecls in the surrounding DeclContext to
Richard Smith [Sat, 28 Sep 2013 04:31:26 +0000 (04:31 +0000)]
Switch from putting init capture VarDecls in the surrounding DeclContext to
putting them in the call operator's DeclContext. This better matches the
language wording and avoids some cases where code gets confused by them for
namespace-scope lambdas and the like.

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

11 years agoPer latest drafting, switch to implementing init-captures as if by declaring
Richard Smith [Sat, 28 Sep 2013 04:02:39 +0000 (04:02 +0000)]
Per latest drafting, switch to implementing init-captures as if by declaring
and capturing a variable declaration, and complete the implementation of them.

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

11 years ago[analyzer] Make inlining decisions based on the callee being variadic.
Jordan Rose [Sat, 28 Sep 2013 02:04:19 +0000 (02:04 +0000)]
[analyzer] Make inlining decisions based on the callee being variadic.

...rather than trying to figure it out from the call site, and having
people complain that we guessed wrong and that a prototype-less call is
the same as a variadic call on their system. More importantly, fix a
crash when there's no decl at the call site (though we could have just
returned a default value).

<rdar://problem/15037033>

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

11 years agoTypo correction: _int64 -> __int64.
Warren Hunt [Sat, 28 Sep 2013 00:15:41 +0000 (00:15 +0000)]
Typo correction: _int64 -> __int64.

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

11 years agoImplements some of the more commonly used intrinsics in Intrin.h
Warren Hunt [Fri, 27 Sep 2013 23:57:26 +0000 (23:57 +0000)]
Implements some of the more commonly used intrinsics in Intrin.h
Differential Revision: http://llvm-reviews.chandlerc.com/D1766

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

11 years agoDon't suggest namespaces if the next token is a '.'
Kaelyn Uhrain [Fri, 27 Sep 2013 23:54:23 +0000 (23:54 +0000)]
Don't suggest namespaces if the next token is a '.'

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

11 years agoTBAA: use the same format for scalar TBAA and struct-path aware TBAA.
Manman Ren [Fri, 27 Sep 2013 23:06:41 +0000 (23:06 +0000)]
TBAA: use the same format for scalar TBAA and struct-path aware TBAA.

Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA only generates tags to scalar types.

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

11 years agoObjectiveC migrator. Infer property from getters only
Fariborz Jahanian [Fri, 27 Sep 2013 22:55:54 +0000 (22:55 +0000)]
ObjectiveC migrator. Infer property from getters only
if property name is a valid identifier in the underlying
language. // rdar://15044184

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

11 years agoImplementation of N3760 which is planned to be voted into C++14's draft
Chandler Carruth [Fri, 27 Sep 2013 22:30:27 +0000 (22:30 +0000)]
Implementation of N3760 which is planned to be voted into C++14's draft
tomorrow is complete.

There is a missing warning due to a serious issue with template
instantiation in Clang (and potentially in the core language).

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

11 years agoFix a bug where we failed to diagnose class template specialization
Chandler Carruth [Fri, 27 Sep 2013 22:14:40 +0000 (22:14 +0000)]
Fix a bug where we failed to diagnose class template specialization
uses.

This fixes one of the two remaining failures to implement [[deprecated]]
as specified for C++14.

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

11 years agoNote that modules are supported for C/Objective-C, and have syntax in ObjC.
Douglas Gregor [Fri, 27 Sep 2013 21:23:28 +0000 (21:23 +0000)]
Note that modules are supported for C/Objective-C, and have syntax in ObjC.

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

11 years agodocs: Document CXXLiteralOperatorName and CXXUsingDirective
Justin Bogner [Fri, 27 Sep 2013 21:10:54 +0000 (21:10 +0000)]
docs: Document CXXLiteralOperatorName and CXXUsingDirective

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

11 years agodocs: Remove note about Identifiers being used for C++ operators
Justin Bogner [Fri, 27 Sep 2013 21:10:51 +0000 (21:10 +0000)]
docs: Remove note about Identifiers being used for C++ operators

C++ operators are represented by CXXOperatorName now, which is already
documented.

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

11 years agoUpdate the help text.
Rafael Espindola [Fri, 27 Sep 2013 20:42:38 +0000 (20:42 +0000)]
Update the help text.

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

11 years agoReplace -fobjc-default-synthesize-properties with disable-objc-default-synthesize...
Rafael Espindola [Fri, 27 Sep 2013 20:21:48 +0000 (20:21 +0000)]
Replace -fobjc-default-synthesize-properties with disable-objc-default-synthesize-properties.

We want the modern behavior most of the time, so inverting the option simplifies
the driver and the tests.

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

11 years agoImplement N3760, support for the [[deprecated]] attribute.
Chandler Carruth [Fri, 27 Sep 2013 20:20:17 +0000 (20:20 +0000)]
Implement N3760, support for the [[deprecated]] attribute.

This motion appears to have consensus in the C++ committee and is
expected to be voted into the C++14 draft tomorrow during the formal
vote.

No extension warning in C++11 as attributes not specified in the
standard using the standard syntax in C++11 have implementation defined
meaning, and we define the meaning proposed for C++14.

There is one bug exposed as we do not warn on a deprecated template
specialization. I've left a FIXME in the test case and will dig into
that next.

Also, I will add a few more exhaustive test cases of the other features
specified for this attribute in a follow-up commit.

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

11 years agoMark variable template implementation as complete. Nearly all of the credit
Richard Smith [Fri, 27 Sep 2013 20:19:41 +0000 (20:19 +0000)]
Mark variable template implementation as complete. Nearly all of the credit
here goes to Larisse Voufo.

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

11 years agoVariable templates: handle instantiation of static data member templates
Richard Smith [Fri, 27 Sep 2013 20:14:12 +0000 (20:14 +0000)]
Variable templates: handle instantiation of static data member templates
appropriately, especially when they appear within class templates.

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

11 years agoComment out links for papers that aren't up yet.
Richard Smith [Fri, 27 Sep 2013 19:55:03 +0000 (19:55 +0000)]
Comment out links for papers that aren't up yet.

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

11 years agoDon't give suggest things like function names on the left side of "=".
Kaelyn Uhrain [Fri, 27 Sep 2013 19:40:16 +0000 (19:40 +0000)]
Don't give suggest things like function names on the left side of "=".

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

11 years agoAvoid the hard-coded limit on the number of typo corrections attempted.
Kaelyn Uhrain [Fri, 27 Sep 2013 19:40:12 +0000 (19:40 +0000)]
Avoid the hard-coded limit on the number of typo corrections attempted.

Move some tests from typo-correction.cpp to typo-correction-pt2.cpp
because they were running afoul of the hard-coded limit of 20 typos
corrected. Some of the tests after it were still working due to the
limit not applying to cached corrections and in cases where a non-NULL
MemberContext is passed in to Sema::CorrectTypo.  Most of the moved tests
still passed after being moved, but the test involving "data_struct" had
only been passing because the test had exceeded that limit so a fix for
it is also included (most of the changes to ParseStmt.cpp are shared with
and originated from another typo correction impovement that was split
into a separate commit).

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

11 years agoCache the location of failed typo corrections so that typo correction
Kaelyn Uhrain [Fri, 27 Sep 2013 19:40:08 +0000 (19:40 +0000)]
Cache the location of failed typo corrections so that typo correction
isn't repeatedly attempted for the same identifier at the same location.

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

11 years agoFix typo: Dellocation.
Benjamin Kramer [Fri, 27 Sep 2013 19:35:09 +0000 (19:35 +0000)]
Fix typo: Dellocation.

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

11 years agoFix formatting goof.
Richard Smith [Fri, 27 Sep 2013 19:12:22 +0000 (19:12 +0000)]
Fix formatting goof.

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

11 years agoUpdate status:
Richard Smith [Fri, 27 Sep 2013 19:11:33 +0000 (19:11 +0000)]
Update status:
 * generic lambdas are now partially supported
 * add papers from formal motions in committee

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

11 years agoclang-cl: pass /FI options to fallback
Hans Wennborg [Fri, 27 Sep 2013 17:54:18 +0000 (17:54 +0000)]
clang-cl: pass /FI options to fallback

We started parsing /FI in r191442, and now we can pass it on to the
fallback too.

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

11 years agoAdding pre/post conditions for some Replacement handling functions
Edwin Vane [Fri, 27 Sep 2013 17:52:45 +0000 (17:52 +0000)]
Adding pre/post conditions for some Replacement handling functions

The vector version of shiftedCodePosition() requires Replacements to be
in sorted order.

Turned existing comment about sorting for deduplicate() into an exact
post condition.

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

11 years agoSourceManager: Open code isInMainFile.
Benjamin Kramer [Fri, 27 Sep 2013 17:12:50 +0000 (17:12 +0000)]
SourceManager: Open code isInMainFile.

- We really shouldn't compute line numbers for every file that is asked if it's
  the main file, it destroys the lazy computation.
- Invalid locations are no longer accounted to the main file, no other
  functionality change.

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