Alp Toker [Wed, 27 Nov 2013 04:59:03 +0000 (04:59 +0000)]
Add a triple to fix this test on Windows
The warning from cmake-clang-x64-msc16-R was:
test\SemaCXX\old-style-cast.cpp Line 6: cast to 'void **' from smaller integer type 'long'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195813
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 27 Nov 2013 03:39:20 +0000 (03:39 +0000)]
Unify lookup from within not-yet-defined defaulted special members: use common
code for handling triviality, deletedness and constexpr. Fix a few bugs in
these, particularly related to mutable members, and remove some dead code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195809
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Wed, 27 Nov 2013 03:18:17 +0000 (03:18 +0000)]
Implement -Wold-style-cast
Based on a patch by Ondřej Hošek!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195808
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Wed, 27 Nov 2013 01:46:48 +0000 (01:46 +0000)]
Remove 'DistinctSpellings' support from Attr.td and change its only user to
look at the attribute spelling instead. The 'ownership_*' attributes should
probably be split into separate *Attr classes, but that's more than I wanted to
do here.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195805
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Wed, 27 Nov 2013 01:46:19 +0000 (01:46 +0000)]
[AArch64] Add support for NEON scalar floating-point absolute difference.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195804
91177308-0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Wed, 27 Nov 2013 01:40:12 +0000 (01:40 +0000)]
Fix the build break introduced by r195799 by restoring two close
curlies.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195802
91177308-0d34-0410-b5e6-
96231b3b80d8
James Dennett [Wed, 27 Nov 2013 01:27:40 +0000 (01:27 +0000)]
Documentation cleanup: Doxygen-ification, typo fixes, and changing some of
the duplicated documentation from .cpp files so that it's not processed by
Doxygen and hence doesn't generate duplicate output.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195799
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 26 Nov 2013 22:31:59 +0000 (22:31 +0000)]
Remove unused entity from .td file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195792
91177308-0d34-0410-b5e6-
96231b3b80d8
Chad Rosier [Tue, 26 Nov 2013 22:17:51 +0000 (22:17 +0000)]
[AArch64] Add support for NEON scalar floating-point to integer convert
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195789
91177308-0d34-0410-b5e6-
96231b3b80d8
DeLesley Hutchins [Tue, 26 Nov 2013 19:45:21 +0000 (19:45 +0000)]
Thread safety analysis: fix ICE due to missing null check on dyn_cast.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195777
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 26 Nov 2013 16:14:15 +0000 (16:14 +0000)]
Replacing a custom diagnostic with a more standard one. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195770
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 26 Nov 2013 16:09:08 +0000 (16:09 +0000)]
Don't call getMostRecentDecl when we know we have it.
On a Release build this takes the testcase in pr18055 from 0m3.892s to 0m1.452s.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195768
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 26 Nov 2013 15:12:20 +0000 (15:12 +0000)]
Move these virtual methods out of line.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195767
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Tue, 26 Nov 2013 13:31:46 +0000 (13:31 +0000)]
Changed non-printable characters in the test to the escaped form. Apparently, not all tools display non-printable characters ;)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195761
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 26 Nov 2013 13:28:51 +0000 (13:28 +0000)]
fix a typo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195760
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:58:04 +0000 (11:58 +0000)]
[Mips] Pass -mmsa option to the assembler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195756
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:57:58 +0000 (11:57 +0000)]
[Mips] Replace explicit argument handling by the single ArgList::AddLastArg() call.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195755
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:57:53 +0000 (11:57 +0000)]
[Mips] Reduce number of FileCheck variables used in the tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195754
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:57:48 +0000 (11:57 +0000)]
[Mips] Add support for nan2008 libraries and headers look up for Code
Sourcery MIPS toolchain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195753
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:57:19 +0000 (11:57 +0000)]
[Mips] Merge two MIPS Code Sourcery toolchain tests into the single one.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195752
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:57:14 +0000 (11:57 +0000)]
[Mips] Do not detect a used MIPS toolchain. Build a path suffix for FSF
toolchain first and check the path existence. If the path does not
exist build and check a path suffix for Code Sourcery toolchain.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195751
91177308-0d34-0410-b5e6-
96231b3b80d8
Simon Atanasyan [Tue, 26 Nov 2013 11:57:09 +0000 (11:57 +0000)]
[Mips] Call findMIPSABIDirSuffix() for MIPS targets only.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195750
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Tue, 26 Nov 2013 10:38:53 +0000 (10:38 +0000)]
Fix crash in getStringSplit.
Summary:
getStringSplit used to crash, when trying to split a long string
literal containing both printable and unprintable multi-byte UTF-8 characters.
Reviewers: djasper, klimek
Reviewed By: djasper
CC: cfe-commits, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2268
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195728
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Tue, 26 Nov 2013 02:52:41 +0000 (02:52 +0000)]
Remove some unused locals
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195714
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Tue, 26 Nov 2013 01:30:10 +0000 (01:30 +0000)]
Unbreak -fms-extensions with GNU libc headers
GNU libc uses '__uptr' as a member name in C mode, conflicting with the
eponymous MSVC pointer modifier keyword.
Detect and mark the token as an identifier when these specific conditions are
met. __uptr will continue to work as a keyword for the remainder of the
translation unit.
Fixes PR17824.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195710
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 26 Nov 2013 00:40:46 +0000 (00:40 +0000)]
Fix buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195703
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 25 Nov 2013 21:42:06 +0000 (21:42 +0000)]
Clang format VS plugin: update build prerequisites in the README
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195690
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 25 Nov 2013 21:30:29 +0000 (21:30 +0000)]
PR18044: Reject declarations of enumtype::X early to avoid an assertion in
downstream code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195687
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 25 Nov 2013 18:50:53 +0000 (18:50 +0000)]
Make the integrated assembler the default for cygwin/mingw too.
The integrated assembler was already the default for win32. It is now able
to handle a clang bootstrap on mingw, so make it the default.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195676
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Mon, 25 Nov 2013 18:50:49 +0000 (18:50 +0000)]
Making type_tag_for_datatype consistent with its declared subject from Attr.td. Also updated the related testcase.
Reviewed by Dmitri Gribenko.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195675
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 25 Nov 2013 18:23:23 +0000 (18:23 +0000)]
Fix test failure on targets where size_t is unsigned int.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195673
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 25 Nov 2013 17:50:19 +0000 (17:50 +0000)]
[-cxx-abi microsoft] Create backrefs for <unnamed-type-`id'>
It wasn't possible for an anonymous type to show up inside of function arguments.
However, decltype (which MSVC added support for in 2010) makes this
possible. Further, backrefs to these anonymous types can now be formed.
This fixes PR18022.
N.B. We do not, and very likely _will not_, support MSVC's bug where
subsequent typedefs of anonymous types leak into the linkage name; this
is a gross violation of the ABI. A warning should be introduced to
inform our users of this particular shortcoming.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195669
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Mon, 25 Nov 2013 15:03:44 +0000 (15:03 +0000)]
Another pass at adding missing matchers into the registry.
Summary: Another pass at adding missing matchers into the registry.
Reviewers: klimek
CC: cfe-commits, revane, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2253
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195647
91177308-0d34-0410-b5e6-
96231b3b80d8
Amara Emerson [Mon, 25 Nov 2013 13:18:59 +0000 (13:18 +0000)]
[ARM] Enable FeatureMP for Cortex-A5 by default.
Patch by Oliver Stannard.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195641
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 25 Nov 2013 11:53:05 +0000 (11:53 +0000)]
clang-format: Fix formatting of empty files (fixes c-index-tests).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195638
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 25 Nov 2013 11:08:59 +0000 (11:08 +0000)]
clang-format: Refactor calculation of lines intersecting with -lines.
No functional changes intended. However, it seems to have found a buggy
behavior in one of the tests. I think this structure is generally
desirable and it will make a planned bugfix significantly easier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195634
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 25 Nov 2013 08:07:41 +0000 (08:07 +0000)]
Tests for core issues 270-300.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195626
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 25 Nov 2013 07:07:05 +0000 (07:07 +0000)]
Take cv-qualifiers on fields of class type into account when determining
whether a defaulted special member function should be deleted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195620
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 25 Nov 2013 00:52:29 +0000 (00:52 +0000)]
SemaDeclAttr.cpp: Try to fix a warning [-Wunnamed-type-template-args]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195589
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Mon, 25 Nov 2013 00:40:53 +0000 (00:40 +0000)]
Add heading and remove leftover personal email addresses
clang's attribute support is mature by now so replace Sean's warning and email
address with a standard LLVM copyright heading.
Also remove a personal email address and credit docstring from CGObjCGNU that
shouldn't have been there.
This is in line with the LLVM developer policy introduced in r45410.
Contributors can add themselves to CREDITS.txt while active module owners are
listed in CODE_OWNERS.TXT.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195587
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 24 Nov 2013 23:40:06 +0000 (23:40 +0000)]
remove gcc::Precompile
Clang still has support for running gcc for performing various stages
of a build. Right now it looks like this is used for
* Supporting Fortran in the clang driver
* Running an assembler or linker in systems we don't yet know how to
run them directly.
It looks like the gcc::Precompile is a vestige from the days when we
supported using clang for C and running gcc for c++. This patch removes it
(yes, we have no tests for it).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195586
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 24 Nov 2013 23:28:23 +0000 (23:28 +0000)]
Remove the Darwin_Generic_GCC toolchain.
This is currently unused by any test. The code path would still be hit
by clang on ppc, but
* PPC has not been supported on current versions of OS X
* A port of current clang to older OS X on ppc should be using
toolchains::DarwinClang.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195585
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sun, 24 Nov 2013 21:48:06 +0000 (21:48 +0000)]
Switching the common attribute over to using the generic diagnostic, and removing the now-unused diagnostic. Updates a test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195581
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sun, 24 Nov 2013 21:35:16 +0000 (21:35 +0000)]
__declspec(uuid) is only supported for C++ code according to MSDN (as well as behaviorally in MSVC). This adds a generic diagnostic that we use for uuid, and can use for some other attributes as well, and adds a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195580
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sun, 24 Nov 2013 20:58:02 +0000 (20:58 +0000)]
__declspec(uuid) is only allowed on a class according to MSDN; this makes the semantic checking consistent with what the attribute specifies in Attr.td. Also adds a test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195579
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Sun, 24 Nov 2013 20:36:50 +0000 (20:36 +0000)]
Making some attribute diagnostics more consistent. Removes a newly-unused diagnostic.
Reviewed by Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195578
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Sun, 24 Nov 2013 20:24:54 +0000 (20:24 +0000)]
Parse Microsoft __declspec appearing after class body
MSVC applies these to the following declaration only if present, otherwise
silently ignores them whereas we'll issue a warning.
Handling differs from ordinary attributes appearing in the same place, so add a
Sema test to make sure we get it right.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195577
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 24 Nov 2013 17:05:58 +0000 (17:05 +0000)]
[test] Add test case I forgot to add for r195564.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195572
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sun, 24 Nov 2013 02:12:18 +0000 (02:12 +0000)]
[Parser] Unbreak parsing with incremental parsing enabled and add a unit-test for it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195564
91177308-0d34-0410-b5e6-
96231b3b80d8
James Dennett [Sun, 24 Nov 2013 01:47:49 +0000 (01:47 +0000)]
Fix a typo: "SLocEnty" should read "SLocEntry".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195563
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 23 Nov 2013 22:51:36 +0000 (22:51 +0000)]
Use specific_attr_iterator to tighten loop over ObjCSuppressProtocolAttrs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195561
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 23 Nov 2013 22:29:11 +0000 (22:29 +0000)]
Remove optional parameter bit from attribute ObjCSuppressProtocol.
This refines some diagnostics and reduces some boilerplate checking logic.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195560
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 23 Nov 2013 22:29:06 +0000 (22:29 +0000)]
Move logic to check if a class is tagged with objc_suppress_protocol_methods into a helper.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195559
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Sat, 23 Nov 2013 22:11:57 +0000 (22:11 +0000)]
Fix a SSE2 intrinsics typo
Full discourse at:
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-
20131104/092514.html
http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-November/068124.html
Patch by Dimitry Andric and Alexey Dokuchaev!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195558
91177308-0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Sat, 23 Nov 2013 18:41:35 +0000 (18:41 +0000)]
[CodeGen] If there is a function definition with duplicate mangled name, emit an error instead of asserting.
rdar://
15522601 & http://llvm.org/PR18031
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195556
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sat, 23 Nov 2013 17:53:41 +0000 (17:53 +0000)]
clang-format: Support Qt's slot access specifiers.
This fixes llvm.org/PR17241.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195555
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 23 Nov 2013 16:40:57 +0000 (16:40 +0000)]
Don't use the gcc driver for assembling.
Clang knows how to use the gnu assembler directly from doing so on linux and
hurd. The existing support worked out of the box on cygwin and mingw and I was
able to bootstrap clang with it in both systems (with pending patches for the
new mingw abi, but that is independent of the assembler).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195554
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sat, 23 Nov 2013 14:51:47 +0000 (14:51 +0000)]
clang-format: Fix incorrect space in parameters named by comment.
This fixes llvm.org/PR17979.
Before:
void f() { g(/*aaa=*/x, /*bbb=*/ !y); }
After:
void f() { g(/*aaa=*/x, /*bbb=*/!y); }
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195553
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sat, 23 Nov 2013 14:45:49 +0000 (14:45 +0000)]
clang-format: The "<" of a template argument is not a binary operator.
With Style.BreakBeforeBinaryOperators, clang-format breaks incorrectly.
This fixes llvm.org/PR17994.
Before:
return boost::fusion::at_c<0>(iiii).second == boost::fusion::at_c
<1>(iiii).second;
After:
return boost::fusion::at_c<0>(iiii).second ==
boost::fusion::at_c<1>(iiii).second;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195552
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 23 Nov 2013 14:36:40 +0000 (14:36 +0000)]
Don't pass +soft-float, +soft-float-abi to the arm assembler.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195551
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sat, 23 Nov 2013 14:27:27 +0000 (14:27 +0000)]
clang-format: Fix bug in ObjC method declaration formatting.
Also disallow breaking between "@" and "{" or "[".
Before:
- (NSAttributedString *)attributedStringForSegment:(NSUInteger)segment
index:(NSUInteger)index
attributes:(NSDictionary *)attributes
nonDigitAttributes:(NSDictionary *)
nonDigitAttributes;
[mailComposeViewController
setToRecipients:@
[ NSBundle.mainBundle.infoDictionary[@"ABBFeedbackEmail"] ]];
After:
- (NSAttributedString *)attributedStringForSegment:(NSUInteger)segment
index:(NSUInteger)index
attributes:(NSDictionary *)attributes
nonDigitAttributes:
(NSDictionary *)nonDigitAttributes;
[mailComposeViewController
setToRecipients:
@[ NSBundle.mainBundle.infoDictionary[@"ABBFeedbackEmail"] ]];
This fixes llvm.org/PR18030.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195550
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 23 Nov 2013 10:57:32 +0000 (10:57 +0000)]
Enable non-fragile ABI for the ObjFW runtime
The following patch enables the non-fragile ABI for the ObjFW runtime.
However, I noticed that it is not possible anymore to disable it with
-fno-objc-nonfragile-abi like it was before. I think this functionality should
be restored, but I guess this is not in scope for 3.4 anymore.
Patch by Jonathan Schleifer!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195547
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Sat, 23 Nov 2013 10:22:59 +0000 (10:22 +0000)]
clang-format: Prefer column layout if possible.
Add a severe penalty for not using column layout for braced lists. If
there are solutions with column layout, these are generally preferable
over bin-packed solutions.
Before:
std::vector<MyValues>
aaaaaaaaaaaaaaaaaaa{
aaaaaaa,
aaaaaaaaaa, aaaaa,
aaaaaaaaaaaaaaa, aaa,
aaaaaaaaaa, a,
aaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaa +
aaaaaaaaaaaaaaaaaaa,
aaaaaaa, a };
After:
std::vector<MyValues>
aaaaaaaaaaaaaaaaaaa{
aaaaaaa,
aaaaaaaaaa,
aaaaa,
aaaaaaaaaaaaaaa,
aaa,
aaaaaaaaaa,
a,
aaaaaaaaaaaaaaaaaaaaa,
aaaaaaaaaaaa,
aaaaaaaaaaaaaaaaaaa +
aaaaaaaaaaaaaaaaaaa,
aaaaaaa, a
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195546
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 23 Nov 2013 05:21:32 +0000 (05:21 +0000)]
Fix module name collision in tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195545
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 23 Nov 2013 04:06:09 +0000 (04:06 +0000)]
Generate a marker token when entering or leaving a submodule when building a
module. Use the marker to diagnose cases where we try to transition between
submodules when not at the top level (most likely because a closing brace was
missing at the end of a header file, but is also possible if submodule headers
attempt to do something fundamentally non-modular, like our .def files).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195543
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sat, 23 Nov 2013 01:40:07 +0000 (01:40 +0000)]
Add Distance parameter to ASTNodeKind::isBaseOf.
This will allow the completer to order results by relevance.
Differential Revision: http://llvm-reviews.chandlerc.com/D2209
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195540
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sat, 23 Nov 2013 01:34:36 +0000 (01:34 +0000)]
Rename *MatcherCreateCallback to *MatcherDescriptor, and its member run() to create().
The new names will be more appropriate when the objects are taught to return
type information for the code completer.
Differential Revision: http://llvm-reviews.chandlerc.com/D2208
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195539
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sat, 23 Nov 2013 01:13:16 +0000 (01:13 +0000)]
Split registry matcher resolution into a lookup phase and a construction phase.
The looked-up matchers will be used during code completion.
Differential Revision: http://llvm-reviews.chandlerc.com/D2207
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195534
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 23 Nov 2013 01:01:34 +0000 (01:01 +0000)]
Add back experimental attribute objc_suppress_protocol_methods (slightly renamed).
This is still an experimental attribute, but I wanted it in tree
for review. It may still get yanked.
This attribute can only be applied to a class @interface, not
a class extension or category. It does not change the type
system rules for Objective-C, but rather the implementation checking
for Objective-C classes that explicitly conform to a protocol.
During protocol conformance checking, clang recursively searches
up the class hierarchy for the set of methods that compose
a protocol. This attribute will cause the compiler to not consider
the methods contributed by a super class, its categories, and those
from its ancestor classes. Thus this attribute is used to force
subclasses to redeclare (and hopefully re-implement) methods if
they decide to explicitly conform to a protocol where some of those
methods may be provided by a super class.
This attribute intentionally leaves out properties, which are associated
with state. This attribute only considers methods (at least right now)
that are non-property accessors. These represent methods that "do something"
as dictated by the protocol. This may be further refined, and this
should be considered a WIP until documentation gets written or this
gets removed.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195533
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Sat, 23 Nov 2013 01:01:29 +0000 (01:01 +0000)]
Change ObjCIntefaceDecl::lookupMethod() to have optional 'followsSuper' argument.
This enables a micro-optimization in protocol conformance checking
to not examine the class hierarchy twice per method.
As part of this change, remove the default arguments from lookupInstanceMethod()
and lookupClassMethod(). It was becoming very redundant. For clients
needing the default arguments, have them use the full API instead of
these convenience methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195532
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sat, 23 Nov 2013 00:51:53 +0000 (00:51 +0000)]
Revert r195526, "Remove uninstantiable constructor from DeclTemplate.h"
It apparently causes some versions of GCC to segfault.
http://bb.pgr.jp/builders/cmake-clang-x86_64-linux/builds/17175/steps/build_clang/logs/stdio
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195529
91177308-0d34-0410-b5e6-
96231b3b80d8
Peter Collingbourne [Sat, 23 Nov 2013 00:42:43 +0000 (00:42 +0000)]
Remove uninstantiable constructor from DeclTemplate.h
Patch by Kim Gräsman!
Laszlo Nagy and me both ran into the same issue with SpecIterator from DeclTemplate.h causing an error:
tools/clang/include/clang/AST/DeclTemplate.h:560:22: error:
no matching constructor for initialization of 'SetIteratorType' (aka
'FoldingSetVectorIterator<clang::FunctionTemplateSpecializationInfo,
typename SmallVector<FunctionTemplateSpecializationInfo *, 8>::iterator>')
SpecIterator() : SetIter() {}
(see e.g. http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-November/033642.html)
The problem is the SpecIterator default constructor which needs a non-existent SetIter default constructor. SpecIterator's default constructor is evidently dead code as any call to it would fail with the above error.
This patch removes it.
Differential Revision: http://llvm-reviews.chandlerc.com/D2246
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195526
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 23 Nov 2013 00:14:32 +0000 (00:14 +0000)]
ObjectiveC. Remove warning diagnostic which checks
attribute on method declaration and implementation
match. This makes no sense. Most annotations are
meant for declarations only and one is for implementation.
This has been constant source of regresions and hackery to
get around special cases. I am removing this check.
Such checks must be done on a case by case basis and
when it makes sense. For example, it makes sense
for availability/deprecated and I will file a radar
for that. // rdar://
15531984
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195524
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Fri, 22 Nov 2013 23:05:57 +0000 (23:05 +0000)]
Make the negative test more specific.
Summary:
Make the negative test more specific.
Otherwise it can accidentally match injected code.
Reviewers: aaron.ballman
CC: klimek, cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D2257
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195512
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 22 Nov 2013 22:49:31 +0000 (22:49 +0000)]
Updating Subjects definitions for attributes based on semantic handling. Removes Subjects for things we cannot currently check, adds Subjects for things we can, and rectifies most discrepancies. Since Subjects are not currently handled in tablegen, there are no functional changes with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195508
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Fri, 22 Nov 2013 21:49:04 +0000 (21:49 +0000)]
Whitespace. No functional change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195503
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Fri, 22 Nov 2013 21:34:35 +0000 (21:34 +0000)]
Adjust r194296 to not apply the alias replacement for externally
available always-inline functions. This breaks libc++'s locale
implementation. Code generation for this case should be fixed, but this
is a stop gap fix for clang 3.4.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195501
91177308-0d34-0410-b5e6-
96231b3b80d8
Manman Ren [Fri, 22 Nov 2013 19:42:45 +0000 (19:42 +0000)]
Debug Info: add a "Debug Info Version" module flag to output the current debug
info version number.
Will error out when modules have different version numbers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195495
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 22 Nov 2013 18:43:41 +0000 (18:43 +0000)]
ObjectiveC modern translator. Fixes a translation bug
tranalation @protocol expression. // rdar://
15517895
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195480
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Fri, 22 Nov 2013 14:41:48 +0000 (14:41 +0000)]
Add support for the 'unless' matcher in the dynamic layer.
Summary: Add support for the 'unless' matcher in the dynamic layer.
Reviewers: klimek
CC: cfe-commits, revane, klimek
Differential Revision: http://llvm-reviews.chandlerc.com/D2247
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195466
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Barton [Fri, 22 Nov 2013 11:53:28 +0000 (11:53 +0000)]
Add support for Cortex-A12.
Patch by Oliver Stannard!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195449
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 22 Nov 2013 10:44:16 +0000 (10:44 +0000)]
AST/DeclBase.h: Fix \param of Decl::new() in r195426. [-Wdocumentation]
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195440
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 22 Nov 2013 10:20:43 +0000 (10:20 +0000)]
Revert r193994 and part of r193995
Not long ago I made the CodeGen of for loops simplify the condition at
-O0 in the same way we do for if and conditionals. Unfortunately this
ties how loops and simple conditions work together too tightly, which
makes features such as instrumentation based PGO awkward.
Ultimately, we should find a more general way to simplify the logic in
a given condition, but for now we'll just avoid using EmitBranchOnBool
for loops, like we already do for while and do loops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195438
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Fri, 22 Nov 2013 10:20:40 +0000 (10:20 +0000)]
CodeGen: Whitespace
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195437
91177308-0d34-0410-b5e6-
96231b3b80d8
Artyom Skrobov [Fri, 22 Nov 2013 09:21:51 +0000 (09:21 +0000)]
Deleting three tests that are redundant with test/Preprocessor/arm-target-features.c and test/Driver/arm-cortex-cpus.c
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195430
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Fri, 22 Nov 2013 09:01:48 +0000 (09:01 +0000)]
Add class-specific operator new to Decl hierarchy. This guarantees that Decls
can't accidentally be allocated the wrong way (missing prefix data for decls
from AST files, for instance) and simplifies the CreateDeserialized functions a
little. An extra DeclContext* parameter to the not-from-AST-file operator new
allows us to ensure that we don't accidentally call the wrong one when
deserializing (when we don't have a DeclContext), allows some extra checks, and
prepares for some planned modules-related changes to Decl allocation.
No functionality change intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195426
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Fri, 22 Nov 2013 08:27:46 +0000 (08:27 +0000)]
Tidy up the no-external-assembler diag
Diags aren't usually in the first person, and 'windows' isn't the correct
product spelling to use in prose. Sidestep issues completely by making this
error message platform-neutral.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195422
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Fri, 22 Nov 2013 08:00:20 +0000 (08:00 +0000)]
Add txt file extension to VS solution's README
This matches other README.txt files in LLVM and makes things more obvious on
Windows where it's likely to be read. CRLFs are retained for the same reason.
Also fix Visual Studio product name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195420
91177308-0d34-0410-b5e6-
96231b3b80d8
Alp Toker [Fri, 22 Nov 2013 07:49:39 +0000 (07:49 +0000)]
Make ASTUnit structure stable with NDEBUG
ASTUnit instances are allocated infrequently so it's fine to keep this field
around in all build configurations.
Assigns null to silence -Wunused-private-field in Release.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195419
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 22 Nov 2013 07:48:15 +0000 (07:48 +0000)]
clang-format: Fix bug in alignment of complex template parameters.
Before:
template <typename
aaaaaaaaaaa, typename
bbbbbbbbbbbbb, template <typename>
class
cccccccccccccccccccccc, typename
ddddddddddddd>
class C {};
After:
template <typename
aaaaaaaaaaa, typename
bbbbbbbbbbbbb,
template <typename> class
cccccccccccccccccccccc,
typename
ddddddddddddd>
class C {};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195418
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 22 Nov 2013 07:26:53 +0000 (07:26 +0000)]
clang-format: Recognize braced lists with trailing function call.
Before:
int count = set<int> { f(), g(), h() }
.size();
After:
int count = set<int>{f(), g(), h()}.size();
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195417
91177308-0d34-0410-b5e6-
96231b3b80d8
Jiangning Liu [Fri, 22 Nov 2013 02:46:20 +0000 (02:46 +0000)]
For AArch64, intrinsic vget_low_xxx can be optimized away.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195409
91177308-0d34-0410-b5e6-
96231b3b80d8
Dmitri Gribenko [Fri, 22 Nov 2013 01:47:15 +0000 (01:47 +0000)]
Comment parsing tests: XML schema: actually run the valid-function-10.xml test
It was there all the time, but I missed adding a RUN line for it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195405
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 22 Nov 2013 00:02:22 +0000 (00:02 +0000)]
ObjectiveC migrator. Improve on definition, use
and testing of objc_bridgmutable attribute per
Aaron Ballman's comments.
// rdar://
15498044
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195396
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 21 Nov 2013 23:30:57 +0000 (23:30 +0000)]
PR18013: Don't assert diagnosing a bad std::initializer_list construction.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195384
91177308-0d34-0410-b5e6-
96231b3b80d8
Ekaterina Romanova [Thu, 21 Nov 2013 22:25:24 +0000 (22:25 +0000)]
Test commit for the user "kromanova" to verify commit access. I removed "UNSUPPORTED" comment because unsigned __int128 type is in fact supported.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195378
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 21 Nov 2013 20:50:32 +0000 (20:50 +0000)]
ObjectiveC. Implement attribute 'objc_bridge_mutable'
whose semantic is currently identical to objc_bridge,
but their differences may manifest down the road with
further enhancements. // rdar://
15498044
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195376
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 21 Nov 2013 17:49:34 +0000 (17:49 +0000)]
ObjectiveC migrator. delegate property must be
inferred as 'assign', not 'assign' and 'strong'.
// rdar://
15509831
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195368
91177308-0d34-0410-b5e6-
96231b3b80d8
Joey Gouly [Thu, 21 Nov 2013 17:09:05 +0000 (17:09 +0000)]
Fix a crash in EmitStoreThroughExtVectorComponentLValue for vectors of odd sizes.
In OpenCL a vector of 3 elements, acts like a vector of four elements.
So for a vector of size 3 the '.hi' and '.odd' accessors, would access
the elements {2, 3} and {1, 3} respectively.
However, in EmitStoreThroughExtVectorComponentLValue we are still operating on
a vector of size 3, so we should only access {2} and {1}. We do this by checking
the last element to be accessed, and ignore it if it is out-of-bounds.
EmitLoadOfExtVectorElementLValue doesn't have a similar problem, because it does
a direct shufflevector with undef, so an out-of-bounds access just gives an undef
value.
Patch by Anastasia Stulova!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195367
91177308-0d34-0410-b5e6-
96231b3b80d8
Enea Zaffanella [Thu, 21 Nov 2013 16:43:28 +0000 (16:43 +0000)]
Added testcase for r195255.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195366
91177308-0d34-0410-b5e6-
96231b3b80d8