]> granicus.if.org Git - clang/log
clang
8 years agoAllow pseudo-destructor calls on forward-declared Objective-C class pointers.
John McCall [Mon, 14 Dec 2015 19:12:54 +0000 (19:12 +0000)]
Allow pseudo-destructor calls on forward-declared Objective-C class pointers.

rdar://18522255

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

8 years agoclang-cl: make /Wall turn on both -Wall and -Wextra (PR25563)
Hans Wennborg [Mon, 14 Dec 2015 18:46:11 +0000 (18:46 +0000)]
clang-cl: make /Wall turn on both -Wall and -Wextra (PR25563)

The documentation suggests /Wall should really turn on -Wextra and any
other warnings that are not enabled by default. That would correspond
to Clang's -Weverything, but is probably not what users want.

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

8 years ago[MS ABI] Don't rely on terminatepad
David Majnemer [Mon, 14 Dec 2015 18:34:18 +0000 (18:34 +0000)]
[MS ABI] Don't rely on terminatepad

We'd like to remove support for terminatepad from LLVM.  To do this, we
need to move Clang off of it first.  The intent behind terminatepad was
to carefully model exception specifications for the MSVC personality.

However, we don't support exception specifications for the MSVC
personality and neither does MSVC.  Instead, MSVC supports
all-or-nothing exception specifications.  We can model this limited
usage using cleanuppads which call std::terminate.

Differential Revision: http://reviews.llvm.org/D15478

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

8 years ago[Power PC] add soft float support for ppc32
Petar Jovanovic [Mon, 14 Dec 2015 17:51:50 +0000 (17:51 +0000)]
[Power PC] add soft float support for ppc32

This patch enables soft float support for ppc32 architecture and fixes
the ABI for variadic functions. This is the first in a set of patches
for soft float support in LLVM.

Patch by Strahinja Petrovic.

Differential Revision: http://reviews.llvm.org/D13351

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

8 years ago[Hexagon] Xfail two tests that fail due to over-aligning arrays
Krzysztof Parzyszek [Mon, 14 Dec 2015 17:17:20 +0000 (17:17 +0000)]
[Hexagon] Xfail two tests that fail due to over-aligning arrays

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

8 years ago[Hexagon] Update default paths and arguments
Krzysztof Parzyszek [Mon, 14 Dec 2015 15:03:57 +0000 (15:03 +0000)]
[Hexagon] Update default paths and arguments

- Removed support for hexagonv3 and earlier.
- Added handling of hexagonv55 and hexagonv60.
- Added handling of target features (hvx, hvx-double).
- Updated paths to reflect current directory layout.

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

8 years agoAdd parse and sema of OpenMP distribute directive with all clauses except dist_schedule
Carlo Bertolli [Mon, 14 Dec 2015 14:51:25 +0000 (14:51 +0000)]
Add parse and sema of OpenMP distribute directive with all clauses except dist_schedule

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

8 years ago[OPENMP] Fix debug info for 'atomic' construct.
Alexey Bataev [Mon, 14 Dec 2015 09:26:19 +0000 (09:26 +0000)]
[OPENMP] Fix debug info for 'atomic' construct.
Debug info for statement under 'atomic' construct must point exactly to that statement, not the directive itself.

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

8 years agoclang-format: Add test for AlignAfterOpenBracket = AlwaysBreak in C++.
Daniel Jasper [Mon, 14 Dec 2015 08:41:18 +0000 (08:41 +0000)]
clang-format: Add test for AlignAfterOpenBracket = AlwaysBreak in C++.

Revision 251405 added AlwaysBreak to support Google's JavaScript style. This
changeset complete existing AlignsAfterOpenBracket tests to exercise
AlwaysBreak for C++.

I thought this would be worthwhile.  With this option we can support request
from http://lists.llvm.org/pipermail/cfe-dev/2015-May/042942.html, that had
been requested a few times. This also partially solve related Bug 23422 and is
probably sufficient for most people.

  AlignAfterOpenBracket = FormatStyle::BAS_AlwaysBreak;
  BinPackArguments = false;
  BinPackParameters = false;

With these setting we obtain this formatting:

  void fooWithAVeryLongParamList(
      int firstParameter,
      int secondParameter
      int lastParameter)
  {
      object.alsoThisDoenstFitSoIBreakImmidiatly(
          firstParameter,
          secondParameter,
          lastParameter);
  }

Patch by Jean-Philippe Dufraigne, thank you.

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

8 years agoclang-format: Extend Linux-brace-wrapping test.
Daniel Jasper [Mon, 14 Dec 2015 08:33:07 +0000 (08:33 +0000)]
clang-format: Extend Linux-brace-wrapping test.

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

8 years agoclang-format: Fix style default for WebKit and Linux styles.
Daniel Jasper [Mon, 14 Dec 2015 08:24:16 +0000 (08:24 +0000)]
clang-format: Fix style default for WebKit and Linux styles.

Brought up in codereviews:
http://reviews.llvm.org/D15445
http://reviews.llvm.org/D15485

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

8 years ago[Sema] Add -Wparentheses warnings for '^' in '|' expressions and '&' in '^' expressio...
Craig Topper [Sun, 13 Dec 2015 05:41:41 +0000 (05:41 +0000)]
[Sema] Add -Wparentheses warnings for '^' in '|' expressions and '&' in '^' expressions to compliment '&' in '|' that is already present. Matches gcc behavior.

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

8 years ago[Sema] Write some checks for groups of BinaryOperatorKinds in terms of the predicates...
Craig Topper [Sun, 13 Dec 2015 05:41:37 +0000 (05:41 +0000)]
[Sema] Write some checks for groups of BinaryOperatorKinds in terms of the predicates already available in BinaryOperator. NFC

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

8 years agoRevert r255445: adding a new test case
Xinliang David Li [Sun, 13 Dec 2015 04:45:49 +0000 (04:45 +0000)]
Revert r255445: adding a new test case

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

8 years agoResubmit new test case after adding more constraint
Xinliang David Li [Sun, 13 Dec 2015 03:03:35 +0000 (03:03 +0000)]
Resubmit new test case after adding more constraint

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

8 years agoRevert 255436 : remove test that needs to be refined
Xinliang David Li [Sat, 12 Dec 2015 18:49:37 +0000 (18:49 +0000)]
Revert 255436 : remove test that needs to be refined

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

8 years ago[PGO] add a test case with -no-integrated-as
Xinliang David Li [Sat, 12 Dec 2015 17:39:38 +0000 (17:39 +0000)]
[PGO] add a test case with -no-integrated-as

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

8 years ago[PGO] Stop using invalid char in instr variable names.
Xinliang David Li [Sat, 12 Dec 2015 17:28:37 +0000 (17:28 +0000)]
[PGO] Stop using invalid char in instr variable names.

(This is part-2 of the patch of r255434 --
fixing test cases, second try)

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

8 years agoMinor formatting cleanup. NFC
Craig Topper [Sat, 12 Dec 2015 06:30:51 +0000 (06:30 +0000)]
Minor formatting cleanup. NFC

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

8 years ago[Sema] Simplify a couple if statements. Explicitly check up front that only one of...
Craig Topper [Sat, 12 Dec 2015 06:30:48 +0000 (06:30 +0000)]
[Sema] Simplify a couple if statements. Explicitly check up front that only one of the expressions is a comparision op. Then if we find that either is a bitwise op, we know it must be the other one. NFC

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

8 years agoTry to appease a buildbot.
David Majnemer [Sat, 12 Dec 2015 05:50:32 +0000 (05:50 +0000)]
Try to appease a buildbot.

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

8 years agoUpdate clang to use the updated LLVM EH instructions
David Majnemer [Sat, 12 Dec 2015 05:39:21 +0000 (05:39 +0000)]
Update clang to use the updated LLVM EH instructions

Depends on D15139.

Reviewers: rnk

Differential Revision: http://reviews.llvm.org/D15140

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

8 years agoPreserve source location information for qualified names used in a constructor
Richard Smith [Sat, 12 Dec 2015 02:17:54 +0000 (02:17 +0000)]
Preserve source location information for qualified names used in a constructor
initializer list to name a base class. Patch by Shahms King!

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

8 years agoRevert r254647.
Easwaran Raman [Sat, 12 Dec 2015 01:11:09 +0000 (01:11 +0000)]
Revert r254647.

Reason: The testcase fails in many architectures.

Differential Revision: http://reviews.llvm.org/D15163

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

8 years agoAttach maximum function count to Module when using PGO mode
Easwaran Raman [Sat, 12 Dec 2015 00:31:02 +0000 (00:31 +0000)]
Attach maximum function count to Module when using PGO mode

This sets the maximum entry count among all functions in the program to the
module using module flags. This allows the optimizer to use this information.

Differential Revision: http://reviews.llvm.org/D15163

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

8 years agodocs: Document -fno-sanitize-trap= and -fsanitize-recover= flags for CFI.
Peter Collingbourne [Fri, 11 Dec 2015 23:54:18 +0000 (23:54 +0000)]
docs: Document -fno-sanitize-trap= and -fsanitize-recover= flags for CFI.

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

8 years ago[modules] If the semantic and lexical DC of a decl are the same, write out the
Richard Smith [Fri, 11 Dec 2015 22:41:00 +0000 (22:41 +0000)]
[modules] If the semantic and lexical DC of a decl are the same, write out the
second one as 0 instead of writing the same bits to the module file twice.
This typically reduces PCM file size by about 1%.

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

8 years agoAllow non-defining declarations of class template partial specializations to
Richard Smith [Fri, 11 Dec 2015 22:39:52 +0000 (22:39 +0000)]
Allow non-defining declarations of class template partial specializations to
have a nested name specifier. Strictly speaking, forward declarations of class
template partial specializations are not permitted at all, but that seems like
an obvious wording defect, and if we allow them without a nested name specifier
we should also allow them with a nested name specifier.

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

8 years ago[clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.
Nico Weber [Fri, 11 Dec 2015 22:31:16 +0000 (22:31 +0000)]
[clang-cl] Let /W4 map to -Wall -Wextra instead of just -Wall.

There's no way to make a flag alias to two flags, so add a /WCL4 flag that
maps to the All, Extra diag groups.  Fixes PR25563.

http://reviews.llvm.org/D15350

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

8 years agoReapply "[Modules] Fix regression when an elaborated-type-specifier mentions a hidden...
Ben Langmuir [Fri, 11 Dec 2015 22:05:13 +0000 (22:05 +0000)]
Reapply "[Modules] Fix regression when an elaborated-type-specifier mentions a hidden tag"

Now not trying to use a C++ lookup mechanism in C (d'oh).  Unqualified
lookup is actually fine for this case in C.

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

8 years agoUnify diagnostics for type defintitions in bad contexts
Reid Kleckner [Fri, 11 Dec 2015 21:39:12 +0000 (21:39 +0000)]
Unify diagnostics for type defintitions in bad contexts

The message for a type definition in an "if" condition was different
from the other three for no particular reason.

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

8 years agoError on redeclaring with a conflicting asm label and on redeclaring with an asm...
Nick Lewycky [Fri, 11 Dec 2015 21:28:55 +0000 (21:28 +0000)]
Error on redeclaring with a conflicting asm label and on redeclaring with an asm label after the first ODR-use. Detects problems like the one in PR22830 where gcc and clang both compiled the file but with different behaviour.

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

8 years ago[PGO] Revert r255366: solution incomplete, not handling lambda yet
Xinliang David Li [Fri, 11 Dec 2015 20:23:12 +0000 (20:23 +0000)]
[PGO] Revert r255366: solution incomplete, not handling lambda yet

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

8 years ago[PGO] Stop using invalid char in instr variable names.
Xinliang David Li [Fri, 11 Dec 2015 19:53:35 +0000 (19:53 +0000)]
[PGO] Stop using invalid char in instr variable names.

(This is part-2 of the patch -- fixing test cases)

Before the patch, -fprofile-instr-generate compile will fail
if no integrated-as is specified when the file contains
any static functions (the -S output is also invalid).

This patch fixed the issue. With the change, the index format
version will be bumped up by 1. Backward compatibility is
preserved with this change.

Differential Revision: http://reviews.llvm.org/D15243

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

8 years ago[OpenCL 2.0] In OpenCL v2.0 s6.5 all pointers are implicitly in generic
Anastasia Stulova [Fri, 11 Dec 2015 17:41:19 +0000 (17:41 +0000)]
[OpenCL 2.0] In OpenCL v2.0 s6.5 all pointers are implicitly in generic
address space unless address space is explicitly specified.

Correct the behavior of NULL constant detection -
generic AS void pointer should be accepted as a valid NULL constant.

http://reviews.llvm.org/D15293

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

8 years agoReverting r255337 as it seems to kill bots. Needs investigation.
Anastasia Stulova [Fri, 11 Dec 2015 15:23:00 +0000 (15:23 +0000)]
Reverting r255337 as it seems to kill bots. Needs investigation.

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

8 years ago[OpenCL 2.0] In OpenCL v2.0 s6.5 all pointers are implicitly in generic
Anastasia Stulova [Fri, 11 Dec 2015 13:49:15 +0000 (13:49 +0000)]
[OpenCL 2.0] In OpenCL v2.0 s6.5 all pointers are implicitly in generic
address space unless address space is explicitly specified.

Correct the behavior of NULL constant detection -
generic AS void pointer should be accepted as a valid NULL constant.

http://reviews.llvm.org/D15293

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

8 years agoDriver: add multilibs for ARM EB
Saleem Abdulrasool [Fri, 11 Dec 2015 06:20:59 +0000 (06:20 +0000)]
Driver: add multilibs for ARM EB

This improves the coverage for the multilib directories used for ARM.  Also add
tests covering the internal triple (thumbv7-*).  The Juno board can be run in
this configuration.

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

8 years ago[PGO] Add a test case to cover version-3 format
Xinliang David Li [Fri, 11 Dec 2015 04:02:57 +0000 (04:02 +0000)]
[PGO] Add a test case to cover version-3 format

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

8 years agoCorrectly type-check the default arguments of local functions
John McCall [Fri, 11 Dec 2015 01:56:36 +0000 (01:56 +0000)]
Correctly type-check the default arguments of local functions
when eagerly instantiating them.

rdar://23721638

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

8 years agoRevert "[Modules] Fix regression when an elaborated-type-specifier mentions a hidden...
Ben Langmuir [Fri, 11 Dec 2015 01:44:43 +0000 (01:44 +0000)]
Revert "[Modules] Fix regression when an elaborated-type-specifier mentions a hidden tag"

This is causing assertion failures; reverting until I can fix.

This reverts commit r255267

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

8 years agoAdd some more tests for initializer lists related to CWG1591
Faisal Vali [Fri, 11 Dec 2015 01:04:30 +0000 (01:04 +0000)]
Add some more tests for initializer lists related to CWG1591

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

8 years agoClean ExprConstant/CGExprConstant up a bit. NFC.
George Burgess IV [Fri, 11 Dec 2015 00:23:35 +0000 (00:23 +0000)]
Clean ExprConstant/CGExprConstant up a bit. NFC.

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

8 years ago[VFS] Fix status() of opened redirected file
Ben Langmuir [Thu, 10 Dec 2015 23:41:39 +0000 (23:41 +0000)]
[VFS] Fix status() of opened redirected file

Make RedirectedFileSystem::openFilForRead(path)->status() the same as
RedirectedFileSystem::status(path). Previously we would just get the
status of the underlying real file, which would not have the IsVFSMapped
bit set.

This fixes rebuilding a module that has an include that is relative to
the includer where we will lookup the real path of that file before we
lookup the VFS location.

rdar://problem/23640339

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

8 years agoIn Objective-C, ignore attempts to redefine the ARC/GC qualifier macros.
John McCall [Thu, 10 Dec 2015 23:31:01 +0000 (23:31 +0000)]
In Objective-C, ignore attempts to redefine the ARC/GC qualifier macros.

This works around existing system headers which unconditionally
redefine these macros.

This is reasonably safe to do because we used to warn about it anyway
(outside of system headers).  Continue to warn if the redefinition
would have changed the expansion.  Still permit redefinition if the
macro is explicitly #undef'ed first.

rdar://23788307

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

8 years agoObjective-C properties: merge attributes when redeclaring 'readonly' as 'readwrite...
Douglas Gregor [Thu, 10 Dec 2015 23:02:09 +0000 (23:02 +0000)]
Objective-C properties: merge attributes when redeclaring 'readonly' as 'readwrite' in an extension.

r251874 stopped back-patching the AST when an Objective-C 'readonly'
property is redeclared in a class extension as 'readwrite'. However,
it did not properly handle merging of Objective-C property attributes
(e.g., getter name, ownership, atomicity) to the redeclaration,
leading to bad metadata. Merge (and check!) those property attributes
so we get the right metadata and reasonable ASTs. Fixes
rdar://problem/23823989.

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

8 years agowww: Mention -DGCC_INSTALL_PREFIX instead of --with-gcc-toolchain
Justin Bogner [Thu, 10 Dec 2015 20:52:59 +0000 (20:52 +0000)]
www: Mention -DGCC_INSTALL_PREFIX instead of --with-gcc-toolchain

Since the instructions use cmake, we should probably refer to the
cmake flags and not the configure ones.

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

8 years ago[Sema] Replace pointer-to-map with a map. NFC.
George Burgess IV [Thu, 10 Dec 2015 19:25:21 +0000 (19:25 +0000)]
[Sema] Replace pointer-to-map with a map. NFC.

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

8 years agoDo not generate DW_TAG_imported_module for anonymous namespaces (even nested) for...
Ekaterina Romanova [Thu, 10 Dec 2015 18:52:50 +0000 (18:52 +0000)]
Do not generate DW_TAG_imported_module for anonymous namespaces (even nested) for all the platforms except PS4.
For PS4, generate explicit import for anonymous namespaces and mark it by DW_AT_artificial attribute.

Differential Revision: http://reviews.llvm.org/D12624

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

8 years agolibclang: expose dllexport, dllimport attributes
Saleem Abdulrasool [Thu, 10 Dec 2015 18:45:18 +0000 (18:45 +0000)]
libclang: expose dllexport, dllimport attributes

These attributes were previously unexposed.  Expose them through the libclang
interfaces.  Add tests that cover both the MSVC spelling and the GNU spelling.

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

8 years ago[Modules] Fix regression when an elaborated-type-specifier mentions a hidden tag
Ben Langmuir [Thu, 10 Dec 2015 17:28:51 +0000 (17:28 +0000)]
[Modules] Fix regression when an elaborated-type-specifier mentions a hidden tag

This makes non-C++ languages find the same decl as C++ does to
workaround a regression introduced in r252960.

rdar://problem/23784203

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

8 years ago[NFC] Improve a comment from my previous commit (r255221)
Faisal Vali [Thu, 10 Dec 2015 12:29:11 +0000 (12:29 +0000)]
[NFC] Improve a comment from my previous commit (r255221)

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

8 years ago[analyzer] Fix symbolic element index lifetime.
Artem Dergachev [Thu, 10 Dec 2015 09:28:06 +0000 (09:28 +0000)]
[analyzer] Fix symbolic element index lifetime.

SymbolReaper was destroying the symbol too early when it was referenced only
from an index SVal of a live ElementRegion.

In order to test certain aspects of this patch, extend the debug.ExprInspection
checker to allow testing SymbolReaper in a direct manner.

Differential Revision: http://reviews.llvm.org/D12726

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

8 years ago[Sema] Use UnaryOperatorKind and BinaryOperatorKind in parameter lists instead of...
Craig Topper [Thu, 10 Dec 2015 08:51:49 +0000 (08:51 +0000)]
[Sema] Use UnaryOperatorKind and BinaryOperatorKind in parameter lists instead of just unsigned. Removes a few explicit casts. NFC

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

8 years agoAdd parentheses to suppress a -Wparentheses warning.
Craig Topper [Thu, 10 Dec 2015 08:49:55 +0000 (08:49 +0000)]
Add parentheses to suppress a -Wparentheses warning.

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

8 years ago[OPENMP] Fixed processing of predetermined data-sharing attributes
Alexey Bataev [Thu, 10 Dec 2015 08:20:58 +0000 (08:20 +0000)]
[OPENMP] Fixed processing of predetermined data-sharing attributes
Predetermined data-shared attributes for local variables are now considered as implicit. Also, patch prohibits changin of DSA for static memebers of classes.

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

8 years agolibclang: correct inverted logic
Saleem Abdulrasool [Thu, 10 Dec 2015 06:30:23 +0000 (06:30 +0000)]
libclang: correct inverted logic

The complete dtor is only emitted when there is a virtual destructor.  The test
itself was incorrect, so the issue in the code was not noticed.

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

8 years ago[OPENMP] Make -fopenmp to turn on OpenMP support by default, clang part
Alexey Bataev [Thu, 10 Dec 2015 05:47:10 +0000 (05:47 +0000)]
[OPENMP] Make -fopenmp to turn on OpenMP support by default, clang part
Patch turns on OpenMP support in clang by default after fixing OpenMP buildbots.
Differential Revision: http://reviews.llvm.org/D13803

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

8 years agoFix PR24694 (CWG1591): Deducing array bound and element type from initializer list
Faisal Vali [Thu, 10 Dec 2015 05:36:39 +0000 (05:36 +0000)]
Fix PR24694 (CWG1591): Deducing array bound and element type from initializer list
https://llvm.org/bugs/show_bug.cgi?id=24694
http://wg21.link/cwg1591

Teach DeduceFromInitializerList in SemaTemplateDeduction.cpp to deduce against array (constant and dependent sized) parameters (really, reference to arrays since they don't decay to pointers), by checking if the template parameter is either one of those kinds of arrays, and if so, deducing each initializer list element against the element type, and then deducing the array bound if needed.

In brief, this patch enables the following code:
template<class T, int N> int *f(T (&&)[N]);
int *ip = f({1, 2, 3});

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

8 years ago[MSVC] Fix for http://llvm.org/PR25636: indexed accessor property not supported corre...
Alexey Bataev [Thu, 10 Dec 2015 04:38:18 +0000 (04:38 +0000)]
[MSVC] Fix for http://llvm.org/PR25636: indexed accessor property not supported correctly.
All problems described in http://llvm.org/PR25636 are implemented except for return value of the 'put' property. This patch fixes this problem with the indexed properties
Differential Revision: http://reviews.llvm.org/D15174

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

8 years agoMark MS inline ASM 'nodplicate' it it has labels (PR23715)
Hans Wennborg [Thu, 10 Dec 2015 01:38:04 +0000 (01:38 +0000)]
Mark MS inline ASM 'nodplicate' it it has labels (PR23715)

Duplicating it can lead to labels being defined twice.

Differential revision: http://reviews.llvm.org/D15399

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

8 years agoFix a typo in the clang user manual.
Yunzhong Gao [Thu, 10 Dec 2015 01:37:18 +0000 (01:37 +0000)]
Fix a typo in the clang user manual.
-fmax-unknown-pointer-align => -fmax-type-align

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

8 years agoPR25416: Improve performance of processing inline assembly consisting of many
Richard Smith [Thu, 10 Dec 2015 01:11:47 +0000 (01:11 +0000)]
PR25416: Improve performance of processing inline assembly consisting of many
implicitly-concatenated string literals. When looking for the start of a token
in the inline assembly, start from the end of the previous token, not the start
of the entire string.

Patch by Yunlian Jiang!

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

8 years ago[Lit Test] Updated 20 Lit tests to be C++11 compatible.
Charles Li [Thu, 10 Dec 2015 01:07:17 +0000 (01:07 +0000)]
[Lit Test] Updated 20 Lit tests to be C++11 compatible.

This is the 5th Lit test patch.
Expanded expected diagnostics to vary by C++ dialect.
Expanded RUN line to: default, C++98/03 and C++11.

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

8 years agoFix crash on invalid initialization with std::initializer_list
Reid Kleckner [Wed, 9 Dec 2015 23:18:38 +0000 (23:18 +0000)]
Fix crash on invalid initialization with std::initializer_list

It is possible for CheckListElementTypes to fail without filling in any
initializer list elements.

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

8 years agoObjective-C properties: loosen 'atomic' checking for readonly properties.
Douglas Gregor [Wed, 9 Dec 2015 22:57:32 +0000 (22:57 +0000)]
Objective-C properties: loosen 'atomic' checking for readonly properties.

r251874 reworked the way we handle properties declared within
Objective-C class extensions, which had the effective of tightening up
property checking in a number of places. In this particular class of
cases, we end up complaining about "atomic" mismatches between an
implicitly-atomic, readonly property and a nonatomic, readwrite
property, which doesn't make sense because "atomic" is essentially
irrelevant to readonly properties.

Therefore, suppress this diagnostic when the readonly property is
implicitly atomic. Fixes rdar://problem/23803109.

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

8 years ago[CMake] Pass CMAKE_MAKE_PROGRAM through to compiler-rt build.
Chris Bieneman [Wed, 9 Dec 2015 22:46:25 +0000 (22:46 +0000)]
[CMake] Pass CMAKE_MAKE_PROGRAM through to compiler-rt build.

This is needed if your make tool is overridden.

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

8 years agofix typos; NFC
Sanjay Patel [Wed, 9 Dec 2015 22:16:07 +0000 (22:16 +0000)]
fix typos; NFC

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

8 years agounique_ptrify some collections in FileManager
David Blaikie [Wed, 9 Dec 2015 17:23:13 +0000 (17:23 +0000)]
unique_ptrify some collections in FileManager

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

8 years ago[Hexagon] Use integrated assembler by default
Krzysztof Parzyszek [Wed, 9 Dec 2015 16:34:24 +0000 (16:34 +0000)]
[Hexagon] Use integrated assembler by default

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

8 years agoclang-format: Improve documentation of AlignOperands.
Daniel Jasper [Wed, 9 Dec 2015 07:56:52 +0000 (07:56 +0000)]
clang-format: Improve documentation of AlignOperands.

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

8 years agoReformat linefeeds.
NAKAMURA Takumi [Wed, 9 Dec 2015 07:52:46 +0000 (07:52 +0000)]
Reformat linefeeds.

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

8 years agoRevert r255001, "Add parse and sema for OpenMP distribute directive and all its claus...
NAKAMURA Takumi [Wed, 9 Dec 2015 04:35:57 +0000 (04:35 +0000)]
Revert r255001, "Add parse and sema for OpenMP distribute directive and all its clauses excluding dist_schedule."

It causes memory leak. Some tests in test/OpenMP would fail.

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

8 years ago[Basic] Rangify two for loops. NFC.
Vedant Kumar [Wed, 9 Dec 2015 01:44:02 +0000 (01:44 +0000)]
[Basic] Rangify two for loops. NFC.

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

8 years ago[PPC64, TSAN] Enable thread sanitizer for PPC64
Bill Schmidt [Tue, 8 Dec 2015 22:48:02 +0000 (22:48 +0000)]
[PPC64, TSAN] Enable thread sanitizer for PPC64

Patch by Simone Atzeni.

This enables the -fsanitize=thread flag for PPC64 and PPC64LE.

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

8 years agoObjective-C properties: fix bogus use of "isa<>" on a QualType.
Douglas Gregor [Tue, 8 Dec 2015 22:45:17 +0000 (22:45 +0000)]
Objective-C properties: fix bogus use of "isa<>" on a QualType.

The code used "isa" to check the type and then "getAs" to look through
sugar; we need to look through the sugar when checking, too, otherwise
any kind of sugar (nullability qualifiers in the example; or a
typedef) will thwart this semantic check. Fixes rdar://problem/23804250.

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

8 years agoModule file extensions: pass a Sema through to the extension writer.
Douglas Gregor [Tue, 8 Dec 2015 22:43:32 +0000 (22:43 +0000)]
Module file extensions: pass a Sema through to the extension writer.

Module file extensions are likely to need access to
Sema/Preprocessor/ASTContext, and cannot get it through other
sources.

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

8 years ago[Sema] Add warning when comparing nonnull and null
George Burgess IV [Tue, 8 Dec 2015 22:02:00 +0000 (22:02 +0000)]
[Sema] Add warning when comparing nonnull and null

Currently, we emit warnings in some cases where nonnull function
parameters are compared against null. This patch extends this support
to warn when comparing the result of `returns_nonnull` functions
against null.

More specifically, we will now warn cases like:

int *foo() __attribute__((returns_nonnull));
int main() {
  if (foo() == NULL) {} // warning: will always evaluate to false
}

Differential Revision: http://reviews.llvm.org/D15324

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

8 years ago[X86][AVX2] Stripped backend codegen tests
Simon Pilgrim [Tue, 8 Dec 2015 21:16:45 +0000 (21:16 +0000)]
[X86][AVX2] Stripped backend codegen tests

As discussed on the ml, backend tests need to be put in llvm/test/CodeGen/X86 as fast-isel tests using IR that is as close to what is generated here as possible.

The llvm tests will (re)added in a future commit.

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

8 years agoUse range loops and autos in utils/TableGen/ClangAttrEmitter.cpp and generated code.
Eugene Zelenko [Tue, 8 Dec 2015 18:49:01 +0000 (18:49 +0000)]
Use range loops and autos in utils/TableGen/ClangAttrEmitter.cpp and generated code.

Differential revision: http://reviews.llvm.org/D15313

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

8 years agoUse range loops and autos in lib/Serialization/ASTWriter.cpp.
Eugene Zelenko [Tue, 8 Dec 2015 18:00:11 +0000 (18:00 +0000)]
Use range loops and autos in lib/Serialization/ASTWriter.cpp.

Differential revision: http://reviews.llvm.org/D15311

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

8 years agoUpdate clang-format-vs README
Hans Wennborg [Tue, 8 Dec 2015 17:54:27 +0000 (17:54 +0000)]
Update clang-format-vs README

VS2013 is requried after r231084.

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

8 years ago[x86][avx512] more changes in intrinsics to be align with gcc format
Asaf Badouh [Tue, 8 Dec 2015 12:34:38 +0000 (12:34 +0000)]
[x86][avx512] more changes in intrinsics to be align with gcc format

Differential Revision: http://reviews.llvm.org/D15328

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

8 years ago[OPENMP 4.5] Parsing/sema for 'num_tasks' clause.
Alexey Bataev [Tue, 8 Dec 2015 12:06:20 +0000 (12:06 +0000)]
[OPENMP 4.5] Parsing/sema for 'num_tasks' clause.
OpenMP 4.5 adds directives 'taskloop' and 'taskloop simd'. These directives support clause 'num_tasks'. Patch adds parsing/semantic analysis for this clause.

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

8 years agoReplace bitwise AND with logical AND in an expression that already had another logica...
Craig Topper [Tue, 8 Dec 2015 06:49:15 +0000 (06:49 +0000)]
Replace bitwise AND with logical AND in an expression that already had another logical AND. NFC

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

8 years ago[Sema] Remove tab characters. NFC
Craig Topper [Tue, 8 Dec 2015 04:33:04 +0000 (04:33 +0000)]
[Sema] Remove tab characters. NFC

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

8 years agoAdd parse and sema for OpenMP distribute directive and all its clauses excluding...
Carlo Bertolli [Tue, 8 Dec 2015 04:21:03 +0000 (04:21 +0000)]
Add parse and sema for OpenMP distribute directive and all its clauses excluding dist_schedule.

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

8 years agoExplicitly permit undefined behavior in constant initializers for global
Richard Smith [Tue, 8 Dec 2015 03:21:47 +0000 (03:21 +0000)]
Explicitly permit undefined behavior in constant initializers for global
variables in C, in the cases where we can constant-fold it to a value
regardless (such as floating-point division by zero and signed integer
overflow). Strictly enforcing this rule breaks too much code.

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

8 years agoReplace a bunch of duplicate conditions with the call from types::.
Eric Christopher [Tue, 8 Dec 2015 02:10:19 +0000 (02:10 +0000)]
Replace a bunch of duplicate conditions with the call from types::.

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

8 years agoRemove name from FIXME.
Eric Christopher [Tue, 8 Dec 2015 01:59:51 +0000 (01:59 +0000)]
Remove name from FIXME.

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

8 years agoUpdate comment to reflect that we use other tools via the toolchain to
Eric Christopher [Tue, 8 Dec 2015 01:59:47 +0000 (01:59 +0000)]
Update comment to reflect that we use other tools via the toolchain to
handle more than just C.

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

8 years ago[diagnostics] Avoid crashes while printing macro backtraces
Reid Kleckner [Tue, 8 Dec 2015 01:08:09 +0000 (01:08 +0000)]
[diagnostics] Avoid crashes while printing macro backtraces

When attempting to map a source into a given level of macro expansion,
this code was ignoring the possibility that the start and end of the
range might take wildly different paths through the tree of macro
expansions. It was assuming that the begin spelling location would
always precede the end spelling location, which is false. A macro can
easily transpose its arguments.

This also fixes a related issue where there are extra macro arguments
between the begin location and the end location. In this situation, we
now highlight the entire macro invocation.

Pair programmed with Richard Smith.

Fixes PR12818.

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

8 years ago80-column fixup.
Eric Christopher [Tue, 8 Dec 2015 00:10:13 +0000 (00:10 +0000)]
80-column fixup.

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

8 years agoUpdate comment.
Eric Christopher [Tue, 8 Dec 2015 00:10:10 +0000 (00:10 +0000)]
Update comment.

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

8 years ago[analyzer] Fix crash when lambda captures a variable-length array.
Devin Coughlin [Mon, 7 Dec 2015 23:01:53 +0000 (23:01 +0000)]
[analyzer] Fix crash when lambda captures a variable-length array.

When a C++ lambda captures a variable-length array, it creates a capture
field to store the size of the array. The initialization expression for this
capture is null, which led the analyzer to crash when initializing the field.
To avoid this, use the size expression from the VLA type to determine the
initialization value.

rdar://problem/23748072

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

8 years agoAdd llvm-objdump to compiler-rt test deps.
Alexey Samsonov [Mon, 7 Dec 2015 22:45:36 +0000 (22:45 +0000)]
Add llvm-objdump to compiler-rt test deps.

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

8 years ago80-col and whitespace fixups.
Eric Christopher [Mon, 7 Dec 2015 22:43:05 +0000 (22:43 +0000)]
80-col and whitespace fixups.

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

8 years agoRemove target specifier from new tests
Teresa Johnson [Mon, 7 Dec 2015 20:40:36 +0000 (20:40 +0000)]
Remove target specifier from new tests

Hopefully fix the remaining bot failure from r254927. Remove
target specification since it shouldn't be needed, and this causes
an error when trying to check the pass execution structure in
test/CodeGen/thinlto_backend.c on non-x86 arches.

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

8 years agoAdjust test to fix bot error from r254927.
Teresa Johnson [Mon, 7 Dec 2015 20:26:57 +0000 (20:26 +0000)]
Adjust test to fix bot error from r254927.

Remove the part of the error message that may vary across systems.

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

8 years agoAST: defer to TypeLoc::copy in TypeLoc::initializeFullCopy
Justin Bogner [Mon, 7 Dec 2015 20:04:57 +0000 (20:04 +0000)]
AST: defer to TypeLoc::copy in TypeLoc::initializeFullCopy

If we're initializing a TypeLoc from one that's been allocated with
different alignment, memcpy will get the padding wrong. The `copy`
method already checks and handles this case, so we should just defer
to it.

This also drops the `const` off of the `initializeFullCopy`
declarations, since it isn't even remotely true (and the compiler
notices when we try to call copy() instead of tricking it with
memcpy).

Fixes llvm.org/pr23516.

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