]> granicus.if.org Git - clang/log
clang
10 years agoQuick-Fix pointer arithmetic when performing multi-D new-array initialization.
Faisal Vali [Sat, 14 Dec 2013 00:40:05 +0000 (00:40 +0000)]
Quick-Fix pointer arithmetic when performing multi-D new-array initialization.

clang still doesn't emit the right llvm code when initializing multi-D arrays it seems.

For e.g. the following code would still crash for me on Windows 7, 64 bit:

auto f4 = new int[100][200][300]{{{1,2,3}, {4, 5, 6}}, {{10, 20, 30}}};

It seems that the final new loop that iterates through each outermost array and memsets it to zero gets confused with its final ptr arithmetic.

This patch ensures that it converts the pointer to the allocated type (int [200][300]) before incrementing it (instead of using the base type: 'int').

Richard somewhat squeamishly approved the patch (as a quick fix to potentially make it into 3.4) - while exhorting for a more optimized fix in the future. http://llvm-reviews.chandlerc.com/D2398

Thanks Richard!

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

10 years agoPrepare for using MS ABI by default for Win32: update CodeGenCXX tests
Hans Wennborg [Fri, 13 Dec 2013 22:43:52 +0000 (22:43 +0000)]
Prepare for using MS ABI by default for Win32: update CodeGenCXX tests

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

10 years agoAdd a testcase and a FIXME for an accepts-invalid.
Richard Smith [Fri, 13 Dec 2013 22:28:48 +0000 (22:28 +0000)]
Add a testcase and a FIXME for an accepts-invalid.

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

10 years agoDetabify and fix formatting.
Richard Smith [Fri, 13 Dec 2013 22:26:20 +0000 (22:26 +0000)]
Detabify and fix formatting.

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

10 years agoConsolidate DataLayout string testing in one file.
Rafael Espindola [Fri, 13 Dec 2013 21:49:53 +0000 (21:49 +0000)]
Consolidate DataLayout string testing in one file.

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

10 years agoRemove an unused parameter and include after r197273
Alp Toker [Fri, 13 Dec 2013 21:19:30 +0000 (21:19 +0000)]
Remove an unused parameter and include after r197273

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

10 years agoEliminate BinaryTypeTraitExpr
Alp Toker [Fri, 13 Dec 2013 20:49:58 +0000 (20:49 +0000)]
Eliminate BinaryTypeTraitExpr

There's nothing special about type traits accepting two arguments.

This commit eliminates BinaryTypeTraitExpr and switches all related handling
over to TypeTraitExpr.

Also fixes a CodeGen failure with variadic type traits appearing in a
non-constant expression.

The BTT/TT prefix and evaluation code is retained as-is for now but will soon
be further cleaned up.

This is part of the ongoing work to unify type traits.

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

10 years agoDelete dead code.
Rafael Espindola [Fri, 13 Dec 2013 20:27:54 +0000 (20:27 +0000)]
Delete dead code.

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

10 years agoConvert test to FileCheck.
Rafael Espindola [Fri, 13 Dec 2013 20:11:02 +0000 (20:11 +0000)]
Convert test to FileCheck.

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

10 years agoEvery target sets DescriptionString. Assert that.
Rafael Espindola [Fri, 13 Dec 2013 19:56:31 +0000 (19:56 +0000)]
Every target sets DescriptionString. Assert that.

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

10 years agoConvert test to FileCheck
Rafael Espindola [Fri, 13 Dec 2013 19:44:40 +0000 (19:44 +0000)]
Convert test to FileCheck

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

10 years agoObjective-C. Remove obsolete option from test.
Fariborz Jahanian [Fri, 13 Dec 2013 19:06:55 +0000 (19:06 +0000)]
Objective-C. Remove obsolete option from test.
// rdar://15641300

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

10 years agoUse a: and s: instead of a0: and s0: in the DataLayout strings.
Rafael Espindola [Fri, 13 Dec 2013 18:40:15 +0000 (18:40 +0000)]
Use a: and s: instead of a0: and s0: in the DataLayout strings.

They are equivalent and the size of 'a' and 's' is unused.

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

10 years agoTighten test regexes checking for __attribute__((thiscall)) on function types.
Hans Wennborg [Fri, 13 Dec 2013 18:34:23 +0000 (18:34 +0000)]
Tighten test regexes checking for __attribute__((thiscall)) on function types.

The tests were perhaps made too relaxed in r197164 when we switched to the new
MinGW ABI. This makes sure we check explicitly for an optional thiscall
attribute and nothing else.

We should still look into whether we should print these attributes at all in
these cases.

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

10 years agoObjective-C. Do not issue warning when 'readonly'
Fariborz Jahanian [Fri, 13 Dec 2013 18:19:59 +0000 (18:19 +0000)]
Objective-C. Do not issue warning when 'readonly'
property declaration has a memory management
attribute (retain, copy, etc.). Sich properties
are usually overridden to become 'readwrite'
via a class extension (which require the memory
management attribute specified). In the absence of class
extension override, memory management attribute is
needed to produce correct Code Gen. for the
property getter in any case and this warning becomes
confusing to user. // rdar://15641300

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

10 years agoConvert test to FileCheck and make it more strict.
Rafael Espindola [Fri, 13 Dec 2013 17:47:34 +0000 (17:47 +0000)]
Convert test to FileCheck and make it more strict.

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

10 years ago[analyzer] Add -analyzer-config to scan-build.
Jordan Rose [Fri, 13 Dec 2013 17:16:28 +0000 (17:16 +0000)]
[analyzer] Add -analyzer-config to scan-build.

-analyzer-config options are now passed from scan-build through to
ccc-analyzer and then to clang.

Patch by Daniel Connelly!

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

10 years agoFix raw lex crash and -frewrite-includes noeol-at-eof failure
Alp Toker [Fri, 13 Dec 2013 17:04:55 +0000 (17:04 +0000)]
Fix raw lex crash and -frewrite-includes noeol-at-eof failure

Raw lexers don't have a preprocessor so we need to null check.

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

10 years ago[OpenCL] Produce an error when the work group and vec type hint attributes
Joey Gouly [Fri, 13 Dec 2013 16:15:28 +0000 (16:15 +0000)]
[OpenCL] Produce an error when the work group and vec type hint attributes
are used on non-kernel functions.

Reviewed by Aaron over IRC!

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

10 years agoAdd a clang side test for pr18235 too.
Rafael Espindola [Fri, 13 Dec 2013 16:11:31 +0000 (16:11 +0000)]
Add a clang side test for pr18235 too.

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

10 years agoARM MachO embedded: fix test without FileCheck line
Tim Northover [Fri, 13 Dec 2013 16:05:12 +0000 (16:05 +0000)]
ARM MachO embedded: fix test without FileCheck line

Well, that's one way to pass a test, I suppose. Unfortunately actually doing
the testing means I didn't pass all I thought (embedded v7a is not supported,
apparently). I'll deal with that with the move to -none-macho rather than
putting heinous hacks in right now.

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

10 years agoclang-check to ignore -no-integrated-as because certain drivers can't handle it
Artyom Skrobov [Fri, 13 Dec 2013 13:43:48 +0000 (13:43 +0000)]
clang-check to ignore -no-integrated-as because certain drivers can't handle it

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

10 years agoMove the input files for the unnecessary-module-map-parsing test to Inputs.
Manuel Klimek [Fri, 13 Dec 2013 10:08:24 +0000 (10:08 +0000)]
Move the input files for the unnecessary-module-map-parsing test to Inputs.

Needed to change rename.m to set the right include path so we don't
import a broken module due to recursive module checking.

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

10 years agoMove comment to its rightful place
Renato Golin [Fri, 13 Dec 2013 09:27:34 +0000 (09:27 +0000)]
Move comment to its rightful place

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

10 years agoRefine 'objc_protocol_requires_explicit_implementation' attribute to better handle...
Ted Kremenek [Fri, 13 Dec 2013 06:26:14 +0000 (06:26 +0000)]
Refine 'objc_protocol_requires_explicit_implementation' attribute to better handle indirect protocols.

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

10 years agoMake 'CheckProtocolMethodDefs' a static function.
Ted Kremenek [Fri, 13 Dec 2013 06:26:10 +0000 (06:26 +0000)]
Make 'CheckProtocolMethodDefs' a static function.

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

10 years agoChange 'method X in protocol not implemented' warning to include the name of the...
Ted Kremenek [Fri, 13 Dec 2013 05:58:51 +0000 (05:58 +0000)]
Change 'method X in protocol not implemented' warning to include the name of the protocol.

This removes an extra "note:", which wasn't really all that more useful
and overall reduces the diagnostic spew for this case.

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

10 years agoMake 'WarnUndefinedMethod' a static function.
Ted Kremenek [Fri, 13 Dec 2013 05:58:44 +0000 (05:58 +0000)]
Make 'WarnUndefinedMethod' a static function.

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

10 years ago[objc] If we don't know for sure what the designated initializers of the superclass...
Argyrios Kyrtzidis [Fri, 13 Dec 2013 03:48:17 +0000 (03:48 +0000)]
[objc] If we don't know for sure what the designated initializers of the superclass are,
assume that a [super init..] inside a designated initializer also refers to a designated one
and do not warn.

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

10 years ago[-cxx-abi microsoft] Remove trailing spaces from the mangler
David Majnemer [Fri, 13 Dec 2013 01:06:04 +0000 (01:06 +0000)]
[-cxx-abi microsoft] Remove trailing spaces from the mangler

No functional change, just a tidying up.

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

10 years agoAST: Update URL for Itanium ABI spec
David Majnemer [Fri, 13 Dec 2013 00:54:42 +0000 (00:54 +0000)]
AST: Update URL for Itanium ABI spec

The old URL hasn't worked for quite some time.  While we are here, also
change the link so that it will send us straight to the mangling portion
of the ABI doc.

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

10 years agoMove C++ destructor emission into CGCXXABI
Reid Kleckner [Fri, 13 Dec 2013 00:53:54 +0000 (00:53 +0000)]
Move C++ destructor emission into CGCXXABI

No functionality change.  Only Itanium C++ destructors have implicit VTT
parameters.

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

10 years ago[-cxx-abi microsoft] Add commentary for mangleStaticGuardVariable
David Majnemer [Fri, 13 Dec 2013 00:52:45 +0000 (00:52 +0000)]
[-cxx-abi microsoft] Add commentary for mangleStaticGuardVariable

We will need to do some work here if we want to play nice with MSVC2013.
Add a TODO indicating what changed and why this matters.

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

10 years agoRevert "[-cxx-abi microsoft] Mangle reference temporaries"
David Majnemer [Fri, 13 Dec 2013 00:39:38 +0000 (00:39 +0000)]
Revert "[-cxx-abi microsoft] Mangle reference temporaries"

This reverts commit r197184.

Richard Smith brings up some good points, a proper implementation will
require us to mangle unnameable entities compatibly with MSVC.

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

10 years agoRemove getVTT* in favor of getStructorImplicitParameter*
Reid Kleckner [Fri, 13 Dec 2013 00:09:59 +0000 (00:09 +0000)]
Remove getVTT* in favor of getStructorImplicitParameter*

No functionality change.  The only remaining uses were in ItaniumCXXABI,
which knows the implicit parameter is a VTT.

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

10 years agoEnhance "auto synthesis will not synthesize property in protocol" to include property...
Ted Kremenek [Thu, 12 Dec 2013 23:40:14 +0000 (23:40 +0000)]
Enhance "auto synthesis will not synthesize property in protocol" to include property and protocol name.

Implements <rdar://problem/15617839>.

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

10 years ago[ms-abi] Fixing bitfields sema arror for ms-mode
Warren Hunt [Thu, 12 Dec 2013 23:23:28 +0000 (23:23 +0000)]
[ms-abi] Fixing bitfields sema arror for ms-mode

The check for bitfields that are longer than their base type needed to
be checked in microsoft mode (cl.exe does not support the C++ extnetion
for bitfields longer than their type).

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

10 years agoPR18229: Fix typo in assert condition.
Richard Smith [Thu, 12 Dec 2013 23:14:16 +0000 (23:14 +0000)]
PR18229: Fix typo in assert condition.

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

10 years ago[-cxx-abi microsoft] Mangle reference temporaries
David Majnemer [Thu, 12 Dec 2013 23:12:01 +0000 (23:12 +0000)]
[-cxx-abi microsoft] Mangle reference temporaries

They are mangled the same as normal references, nothing special is going
on here.

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

10 years ago[ms-abi] Refactoring Non-virtual base layout in record layout
Warren Hunt [Thu, 12 Dec 2013 22:33:37 +0000 (22:33 +0000)]
[ms-abi] Refactoring Non-virtual base layout in record layout

This refactor addresses bugzilla bug 18167 and simplifies the code at
the same time.  Also I add a test case for the bug.  Also I make a
non-functional change to the basic layout lit tests to make them more
reliable (using CHECK-NEXT instead of CHECK).

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

10 years agoReplace use of Triple::getEnvironmentName with the simpler
Joerg Sonnenberger [Thu, 12 Dec 2013 21:29:27 +0000 (21:29 +0000)]
Replace use of Triple::getEnvironmentName with the simpler
Triple::getEnvironment.

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

10 years agoUnify type trait parsing
Alp Toker [Thu, 12 Dec 2013 21:23:03 +0000 (21:23 +0000)]
Unify type trait parsing

Type trait parsing is all over the place at the moment with unary, binary and
n-ary C++11 type traits that were developed independently at different points
in clang's history.

There's no good reason to handle them separately -- there are three parsers,
three AST nodes and lots of duplicated handling code with slightly different
implementations and diags for each kind.

This commit unifies parsing of type traits and sets the stage for further
consolidation.

No change in behaviour other than more consistent error recovery.

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

10 years agoWith the new update to the ABI, we should not look for installations
Yaron Keren [Thu, 12 Dec 2013 20:30:41 +0000 (20:30 +0000)]
With the new update to the ABI, we should not look for installations
of MinGW older than 4.7 with incompatible C++ libraries.

This patch makes clang look for all MinGW versions from 4.7:

  4.7.0, 4.7.1, 4.7.2, 4.7.3
  4.8.0, 4.8.1, 4.8.2.

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

10 years agoMake this test pass on Release builds.
Rafael Espindola [Thu, 12 Dec 2013 16:15:25 +0000 (16:15 +0000)]
Make this test pass on Release builds.

On Assert builds the "call" was matching the variable name in
%call = call ...

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

10 years ago[Modules] Don't parse any module map if modules are disabled.
Argyrios Kyrtzidis [Thu, 12 Dec 2013 16:08:33 +0000 (16:08 +0000)]
[Modules] Don't parse any module map if modules are disabled.

Fixes rdar://15644663.

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

10 years agoSwitch to the new MingW ABI.
Rafael Espindola [Thu, 12 Dec 2013 16:07:11 +0000 (16:07 +0000)]
Switch to the new MingW ABI.

GCC 4.7 changed the MingW ABI. On the clang side this means that methods now
have the thiscall calling convention by default.

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

10 years agoAvoid temporary std::string.
Rafael Espindola [Thu, 12 Dec 2013 15:48:19 +0000 (15:48 +0000)]
Avoid temporary std::string.

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

10 years agoDon't return a pointer to a temporary std::string's c_str.
Rafael Espindola [Thu, 12 Dec 2013 15:39:05 +0000 (15:39 +0000)]
Don't return a pointer to a temporary std::string's c_str.

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

10 years agoSimple refactoring to eliminate single-use local variable
Bernard Ogden [Thu, 12 Dec 2013 13:27:15 +0000 (13:27 +0000)]
Simple refactoring to eliminate single-use local variable

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

10 years agoRefactor duplicate functions
Bernard Ogden [Thu, 12 Dec 2013 13:27:11 +0000 (13:27 +0000)]
Refactor duplicate functions

getARMCPU and getLLVMArchSuffixForARM existed as very similar functions
in both ToolChain.cpp and Tools.cpp. Create a single implementation of
each in Tools.cpp, eliminate the duplicate and share via Tools.h.

Creates an 'arm' namespace in Tools.h to be used by any ARM-targetting tools.

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

10 years agoMake thumb the default instruction set for v7m and v7em
Bernard Ogden [Thu, 12 Dec 2013 13:27:04 +0000 (13:27 +0000)]
Make thumb the default instruction set for v7m and v7em

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

10 years agoFix -mthumb resetting of target cpu
Bernard Ogden [Thu, 12 Dec 2013 13:26:59 +0000 (13:26 +0000)]
Fix -mthumb resetting of target cpu

Passing -mthumb with no explicit CPU on the command line
resulted in target CPU changing from the architecture
default to arm7tdmi. Now it does not.

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

10 years agoSuppress -Wshadow / -Wold-style-cast expanded from system header macros
Alp Toker [Thu, 12 Dec 2013 12:47:48 +0000 (12:47 +0000)]
Suppress -Wshadow / -Wold-style-cast expanded from system header macros

Thanks to Jonathan Sauer for providing initial test cases.

Fixes PR16093 and PR18147.

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

10 years agoDarwin-embedded: find correct libclang_rt for embedded targets.
Tim Northover [Thu, 12 Dec 2013 11:55:52 +0000 (11:55 +0000)]
Darwin-embedded: find correct libclang_rt for embedded targets.

This refactors some of the Darwin toolchain classification to give a more solid
distinction between the three primary Darwin platforms (OS X, IOS and IOS
simulator) so that a 4th choice can be added temporarily: embedded MachO
targets.

Longer term, this support will be factored out into a separate class and no
longer classified as "darwin-eabi", but the refactoring should still be useful.

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

10 years agoAdd a test case for the PR17748 crash
Timur Iskhodzhanov [Thu, 12 Dec 2013 11:07:03 +0000 (11:07 +0000)]
Add a test case for the PR17748 crash

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

10 years agoFixed a typo
Alexander Kornienko [Thu, 12 Dec 2013 10:08:54 +0000 (10:08 +0000)]
Fixed a typo

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

10 years agoFilter-out irrelevant command-line options in CommonOptionsParser.
Alexander Kornienko [Thu, 12 Dec 2013 09:59:42 +0000 (09:59 +0000)]
Filter-out irrelevant command-line options in CommonOptionsParser.

Summary:
Leave only -help, -version and options from the specified category.
Updated clang-check and clang-tidy. As clang-tidy is in a separate repository,
here's the diff:

  Index: tools/extra/clang-tidy/tool/ClangTidyMain.cpp
  ===================================================================
  --- tools/extra/clang-tidy/tool/ClangTidyMain.cpp       (revision 197024)
  +++ tools/extra/clang-tidy/tool/ClangTidyMain.cpp       (working copy)
  @@ -39,7 +39,7 @@
   // FIXME: Add option to list name/description of all checks.

   int main(int argc, const char **argv) {
  -  CommonOptionsParser OptionsParser(argc, argv);
  +  CommonOptionsParser OptionsParser(argc, argv, ClangTidyCategory);

     SmallVector<clang::tidy::ClangTidyError, 16> Errors;
     clang::tidy::runClangTidy(Checks, OptionsParser.getCompilations(),

Reviewers: djasper, klimek

Reviewed By: djasper

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

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

10 years agoImplemented GNU-style formatting for compound statements.
Alexander Kornienko [Thu, 12 Dec 2013 09:49:52 +0000 (09:49 +0000)]
Implemented GNU-style formatting for compound statements.

Summary:
Added BraceBreakingStyle::BS_GNU. I'm not sure about the correctness of
static initializer formatting, but compound statements should be fine.

Reviewers: djasper

Reviewed By: djasper

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

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

10 years agoc-arcmt-test/Makefile: Fixup for LDFLAGS=-static on cygming, corresponding to r197116.
NAKAMURA Takumi [Thu, 12 Dec 2013 06:37:12 +0000 (06:37 +0000)]
c-arcmt-test/Makefile: Fixup for LDFLAGS=-static on cygming, corresponding to r197116.

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

10 years agoAdd more test cases for 'objc_protocol_requires_explicit_implementation'.
Ted Kremenek [Thu, 12 Dec 2013 06:20:42 +0000 (06:20 +0000)]
Add more test cases for 'objc_protocol_requires_explicit_implementation'.

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

10 years agoPR17602: check accessibility when performing an implicit derived-to-base
Richard Smith [Thu, 12 Dec 2013 03:40:18 +0000 (03:40 +0000)]
PR17602: check accessibility when performing an implicit derived-to-base
conversion on the LHS of a .* or ->*. Slightly improve diagnostics in case
of an ambiguous base class.

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

10 years agoUpdate user manual to note that implementation for C++11 and C++1y is complete, and...
Richard Smith [Thu, 12 Dec 2013 02:42:17 +0000 (02:42 +0000)]
Update user manual to note that implementation for C++11 and C++1y is complete, and fix a bunch of other issues here.

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

10 years agoRe-apply r197076 and r197086; the build was fixed by chapuni in r197114.
Hans Wennborg [Thu, 12 Dec 2013 02:24:20 +0000 (02:24 +0000)]
Re-apply r197076 and r197086; the build was fixed by chapuni in r197114.

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

10 years agoFix autoconf build in libclang since r197075, (has been reverted in r197111).
NAKAMURA Takumi [Thu, 12 Dec 2013 02:19:37 +0000 (02:19 +0000)]
Fix autoconf build in libclang since r197075, (has been reverted in r197111).

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

10 years agoFix Incorrect CHECK message [0-31]+ in test case.
Kevin Qin [Thu, 12 Dec 2013 02:17:35 +0000 (02:17 +0000)]
Fix Incorrect CHECK message [0-31]+ in test case.
In regular expression, [0-31]+ equals to [0-3]+, not the number from
0 to 31. So change it to [0-9]+.

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

10 years agoRevert r197076: "[objcmt] When emitting a remap file, use a json format
Hans Wennborg [Thu, 12 Dec 2013 02:12:17 +0000 (02:12 +0000)]
Revert r197076: "[objcmt] When emitting a remap file, use a json format
with the edit entries, instead of applying the changes"

(And also revert the follow-up r197086.)

This seems to have broken Linux builds, which were failing with the following:

/build/buildbot/osu8/clang-x86_64-linux-selfhost-rel/llvm.obj/Release+Asserts/lib/libclang.so:
error: undefined reference to
'clang::ento::objc_retain::CallEffects::getEffect(clang::ObjCMethodDecl const*)'
/build/buildbot/osu8/clang-x86_64-linux-selfhost-rel/llvm.obj/Release+Asserts/lib/libclang.so:
error: undefined reference to
'clang::ento::objc_retain::CallEffects::getEffect(clang::FunctionDecl const*)'
collect2: error: ld returned 1 exit status

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

10 years agoSwitching to using hasGlobalStorage instead of !hasLocalStorage for better clarity.
Aaron Ballman [Thu, 12 Dec 2013 02:03:50 +0000 (02:03 +0000)]
Switching to using hasGlobalStorage instead of !hasLocalStorage for better clarity.

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

10 years agoAdded a Subjects clause to the section attribute and made its diagnostics more consis...
Aaron Ballman [Thu, 12 Dec 2013 01:34:39 +0000 (01:34 +0000)]
Added a Subjects clause to the section attribute and made its diagnostics more consistent with other attributes.

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

10 years agoPR18217: Rewrite JumpDiagnostics' handling of temporaries, to correctly handle
Richard Smith [Thu, 12 Dec 2013 01:27:02 +0000 (01:27 +0000)]
PR18217: Rewrite JumpDiagnostics' handling of temporaries, to correctly handle
declarations that might lifetime-extend multiple temporaries. In passing, fix a
crasher (PR18217) if an initializer was dependent and exactly the wrong shape,
and remove a bogus function (Expr::findMaterializedTemporary) now its last use
is gone.

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

10 years agoObjective-C migrator: when inferring 'readonly' property of an
Fariborz Jahanian [Thu, 12 Dec 2013 01:02:00 +0000 (01:02 +0000)]
Objective-C migrator: when inferring 'readonly' property of an
Objective-C object conforming to 'NSCopying' protocol, infer
a 'copy' property, instead of 'strong'. // rdar://15525937

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

10 years agoUse llvm::Regex::Escape in VerifyDiagnosticConsumer.cpp
Hans Wennborg [Thu, 12 Dec 2013 00:27:31 +0000 (00:27 +0000)]
Use llvm::Regex::Escape in VerifyDiagnosticConsumer.cpp

This depends on LLVM r197096.

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

10 years agoAdd CFG tests for switch's involving "extended" enum.
Ted Kremenek [Wed, 11 Dec 2013 23:44:05 +0000 (23:44 +0000)]
Add CFG tests for switch's involving "extended" enum.

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

10 years agoAdd new PrintingPolicy entry to trim number of newlines. Useful for the CFG printer.
Ted Kremenek [Wed, 11 Dec 2013 23:44:02 +0000 (23:44 +0000)]
Add new PrintingPolicy entry to trim number of newlines.  Useful for the CFG printer.

The change isn't completely comprehensive.  This can be filled in
lazily as needed.  There is one consumer right now.

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

10 years agoChange semantics of regex expectations in the diagnostic verifier
Hans Wennborg [Wed, 11 Dec 2013 23:40:50 +0000 (23:40 +0000)]
Change semantics of regex expectations in the diagnostic verifier

Previously, a line like

  // expected-error-re {{foo}}

treats the entirety of foo as a regex. This is inconvenient when matching type
names containing regex characters. For example, to match
"void *(class test8::A::*)(void)" inside such a regex, one would have to type
"void \*\(class test8::A::\*\)\(void\)".

This patch changes the semantics of expected-error-re to only treat the parts
of the directive wrapped in double curly braces as regexes. This avoids the
escaping problem and leads to nicer patterns for those cases; see e.g. the
change to test/Sema/format-strings-scanf.c.

(The balanced search for closing }} of a directive also makes us handle the
full directive in test\SemaCXX\constexpr-printing.cpp:41 and :53.)

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

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

10 years ago[AArch64] Refactor NEON floating-point Max/Min/Maxnm/Minnm across vector AArch64
Chad Rosier [Wed, 11 Dec 2013 23:21:39 +0000 (23:21 +0000)]
[AArch64] Refactor NEON floating-point Max/Min/Maxnm/Minnm across vector AArch64
intrinsics to use f32 types, rather than their vector equivalents.

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

10 years agoRemove extra qualification to fix build with g++ after r197076
Alp Toker [Wed, 11 Dec 2013 22:50:04 +0000 (22:50 +0000)]
Remove extra qualification to fix build with g++ after r197076

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

10 years ago[ms-abi][cleanup] Removing FinalizeCXXLayout : no functional change
Warren Hunt [Wed, 11 Dec 2013 22:28:32 +0000 (22:28 +0000)]
[ms-abi][cleanup] Removing FinalizeCXXLayout : no functional change

After r196549 there is no need to separate FinalizeCXXLayout and
FinalizeLayout so they were merged and FinalizeCXXLayout was eliminated.

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

10 years agoNo longer accepting attribute spellings with prefix and suffix underscores except...
Aaron Ballman [Wed, 11 Dec 2013 22:27:44 +0000 (22:27 +0000)]
No longer accepting attribute spellings with prefix and suffix underscores except for GNU attributes, or C++11-style attributes in the GNU namespace. This prevents attributes such as __declspec(__dllexport__) or [[__noreturn__]] from being treated as known attributes.

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

10 years agoRevert r197043, not a good comment
Renato Golin [Wed, 11 Dec 2013 21:44:56 +0000 (21:44 +0000)]
Revert r197043, not a good comment

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

10 years ago[objcmt] When emitting a remap file, use a json format with the edit entries, instead...
Argyrios Kyrtzidis [Wed, 11 Dec 2013 21:39:06 +0000 (21:39 +0000)]
[objcmt] When emitting a remap file, use a json format with the edit entries, instead of applying the changes
to a temp file directly.

This allows to combine the edits when they can be different based on whether you saw
the implementation or not, e.g. with the designated initializer migration.

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

10 years ago[objcmt] When whitelisting the headers we want to modify, allow changing the
Argyrios Kyrtzidis [Wed, 11 Dec 2013 21:39:00 +0000 (21:39 +0000)]
[objcmt] When whitelisting the headers we want to modify, allow changing the
the ObjC implementation declarations, just don't change implementations for
classes that are not in the whitelisted headers.

For example, if we change a method to return 'instancetype' we should also
update the method definition in the implementation.

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

10 years ago[AArch64] Add NEON scalar floating-point compare LLVM AArch64 intrinsics that
Chad Rosier [Wed, 11 Dec 2013 21:03:56 +0000 (21:03 +0000)]
[AArch64] Add NEON scalar floating-point compare LLVM AArch64 intrinsics that
use f32/f64 types, rather than their vector equivalents.

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

10 years ago[AArch64] Refactor the NEON scalar floating-point reciprocal step and
Chad Rosier [Wed, 11 Dec 2013 21:03:54 +0000 (21:03 +0000)]
[AArch64] Refactor the NEON scalar floating-point reciprocal step and
floating-point reciprocal square root step LLVM AArch64 intrinsics to
use f32/f64 types, rather than their vector equivalents.

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

10 years ago[AArch64] Refactor the NEON scalar floating-point reciprocal estimate, floating-
Chad Rosier [Wed, 11 Dec 2013 21:03:52 +0000 (21:03 +0000)]
[AArch64] Refactor the NEON scalar floating-point reciprocal estimate, floating-
point reciprocal exponent, and floating-point reciprocal square root estimate
LLVM AArch64 intrinsics to use f32/f64 types, rather than their vector
equivalents.

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

10 years ago[ms-cxxabi] Fix linkage of dtor thunks for anonymous classes
Reid Kleckner [Wed, 11 Dec 2013 19:21:27 +0000 (19:21 +0000)]
[ms-cxxabi] Fix linkage of dtor thunks for anonymous classes

We were mistakengly giving linkonce_odr linkage instead of internal
linkage to the deleting and complete destructor thunks for classes in
anonymous namespaces.

Fixes PR17273.

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

10 years ago[analyzer] Add checker callbacks for MemberExpr and UnaryExprOrTypeTraitExpr.
Jordan Rose [Wed, 11 Dec 2013 17:58:10 +0000 (17:58 +0000)]
[analyzer] Add checker callbacks for MemberExpr and UnaryExprOrTypeTraitExpr.

Found by Arthur Yoo!

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

10 years agoBetter diagnostic for static override when methods are thiscall by default
Hans Wennborg [Wed, 11 Dec 2013 17:42:11 +0000 (17:42 +0000)]
Better diagnostic for static override when methods are thiscall by default

Methods are thiscall by default in the MS ABI, and also in MinGW targetting GCC 4.7 or later.

This changes the diagnostic from the technically correct but hard to understand:

  virtual function 'foo' has different calling convention attributes ('void ()') than the function it overrides (which has calling convention 'void () __attribute__((thiscall))')

to the more intuitive and also correct:

  'static' member function 'foo' overrides a virtual function

We already have a test for this. Let's just run it in both ABI modes.

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

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

10 years agoAdd comment about PragmaIntroducerKind
Renato Golin [Wed, 11 Dec 2013 14:45:53 +0000 (14:45 +0000)]
Add comment about PragmaIntroducerKind

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

10 years agoAdd front-end infrastructure now address space casts are in LLVM IR.
David Tweed [Wed, 11 Dec 2013 13:39:46 +0000 (13:39 +0000)]
Add front-end infrastructure now address space casts are in LLVM IR.

With the introduction of explicit address space casts into LLVM, there's
a need to provide a new cast kind the front-end can create for C/OpenCL/CUDA
and code to produce address space casts from those kinds when appropriate.

Patch by Michele Scandale!

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

10 years agoAdd file missing from r197034.
Daniel Jasper [Wed, 11 Dec 2013 12:33:22 +0000 (12:33 +0000)]
Add file missing from r197034.

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

10 years agoModules: Let -fmodules-decluse ignore headers that aren't in a module
Daniel Jasper [Wed, 11 Dec 2013 12:13:00 +0000 (12:13 +0000)]
Modules: Let -fmodules-decluse ignore headers that aren't in a module

Includes might always pull in arbitrary header or data files outside of
modules. Among others, this includes builtin includes, which do not have
a module (story) yet.

Also cleanup implementation of ModuleMap::findModuleForHeader() to be
non-recursive.

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

10 years agoOnly build ARM-specific runtimes if ARM is enabled
Tim Northover [Wed, 11 Dec 2013 12:01:21 +0000 (12:01 +0000)]
Only build ARM-specific runtimes if ARM is enabled

The soft-float variants of (embedded) libclang_rt only make sense for ARM, so
there's no point in trying to build them if the compiler is only capable of
targeting x86.

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

10 years agoTurning IAS on by default on ARM/Thumb
Renato Golin [Wed, 11 Dec 2013 09:35:10 +0000 (09:35 +0000)]
Turning IAS on by default on ARM/Thumb

This is an experimental feature, where -integrated-as will be
on by default on ARM/Thumb. We aim to detect the missing features
so that the next release is stable.

Updating the ReleaseNotes, too.

Also moving the AArch64 into the same place.

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

10 years agoMention LeakSanitizer in AddressSanitizer docs.
Sergey Matveev [Wed, 11 Dec 2013 09:14:36 +0000 (09:14 +0000)]
Mention LeakSanitizer in AddressSanitizer docs.

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

10 years agoChange layering warning tests to not actually build modules.
Daniel Jasper [Wed, 11 Dec 2013 09:11:12 +0000 (09:11 +0000)]
Change layering warning tests to not actually build modules.

Specifically, we want to warn only for direct layering violations for
the modules we are calling clang on.

This temporarily unblocks
http://llvm-reviews.chandlerc.com/D2374

Once that is in, we'll also want to investigate whether to check the
layering in the build step of modules that we build transitively.

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

10 years agoWhen performing a delayed access check, use the surrounding lexical context for
Richard Smith [Wed, 11 Dec 2013 03:35:27 +0000 (03:35 +0000)]
When performing a delayed access check, use the surrounding lexical context for
any local extern declaration, not just a local extern function.

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

10 years ago[ms-abi] Makes Virtual Base Alignment Look at All Virtual Bases
Warren Hunt [Wed, 11 Dec 2013 02:21:03 +0000 (02:21 +0000)]
[ms-abi] Makes Virtual Base Alignment Look at All Virtual Bases

Prior to this patch, the alignment imposed by virtual bases only
included direct virtual bases.  This patch fixes it to look at all
virtual bases.

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

10 years agoWhen performing an array new of a multidimensional array with an initializer
Richard Smith [Wed, 11 Dec 2013 01:40:16 +0000 (01:40 +0000)]
When performing an array new of a multidimensional array with an initializer
list, each element of the initializer list may provide more than one of the
base elements of the array. Be sure to initialize the right type and bump the
array pointer by the right amount.

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

10 years ago[objcmt] Transfer '-objcmt-migrate-designated-init' from the driver to cc1 invocation.
Argyrios Kyrtzidis [Wed, 11 Dec 2013 01:29:48 +0000 (01:29 +0000)]
[objcmt] Transfer '-objcmt-migrate-designated-init' from the driver to cc1 invocation.

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

10 years agoObjectiveC. Fixes a bug where an 'unused property ivar'
Fariborz Jahanian [Wed, 11 Dec 2013 00:53:48 +0000 (00:53 +0000)]
ObjectiveC. Fixes a bug where  an 'unused property ivar'
warning is coming out incorrectly too early
becuase of unrelated scope pop. // rdar://15630719

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