]> granicus.if.org Git - clang/log
clang
9 years agoAdds a way for tools to deduce the target config from a compiler name.
Manuel Klimek [Tue, 6 Oct 2015 10:45:03 +0000 (10:45 +0000)]
Adds a way for tools to deduce the target config from a compiler name.

Adds `addTargetAndModeForProgramName`, a utility function that will add
appropriate `-target foo` and `--driver-mode=g++` tokens to a command
line for driver invocations of the form `a/b/foo-g++`. It is intended to
support tooling: for example, should a compilation database record some
invocation of `foo-g++` without these implicit flags, a Clang tool may
use this function to add them back.

Patch by Luke Zarko.

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

9 years ago[VFS] Port SimpleFormatContext to InMemoryFileSystem.
Benjamin Kramer [Tue, 6 Oct 2015 10:23:34 +0000 (10:23 +0000)]
[VFS] Port SimpleFormatContext to InMemoryFileSystem.

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

9 years ago[VFS] Port applyAllReplacements to InMemoryFileSystem.
Benjamin Kramer [Tue, 6 Oct 2015 10:23:17 +0000 (10:23 +0000)]
[VFS] Port applyAllReplacements to InMemoryFileSystem.

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

9 years ago[VFS] Transition clang-format to use an in-memory FS.
Benjamin Kramer [Tue, 6 Oct 2015 10:04:08 +0000 (10:04 +0000)]
[VFS] Transition clang-format to use an in-memory FS.

Apart from being cleaner this also means that clang-format no longer has
access to the host file system. This isn't necessary because clang-format
never reads includes :)

Includes minor tweaks and bugfixes found in the VFS implementation while
running clang-format tests.

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

9 years agoRemove duplicated default arguments. NFC.
Benjamin Kramer [Mon, 5 Oct 2015 21:20:19 +0000 (21:20 +0000)]
Remove duplicated default arguments. NFC.

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

9 years agoFix the MSVC build.
Rafael Espindola [Mon, 5 Oct 2015 20:20:50 +0000 (20:20 +0000)]
Fix the MSVC build.

No idea what asymmetry MSVC is findind.

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

9 years agoRevert r107690 (for PR7417) and add a testcase that it breaks. The approach of
Richard Smith [Mon, 5 Oct 2015 20:05:21 +0000 (20:05 +0000)]
Revert r107690 (for PR7417) and add a testcase that it breaks. The approach of
that change turns out to not be reasonable: mutating the AST of a parsed
template during instantiation is not a sound thing to do, does not work across
chained PCH / modules builds, and is in any case a special-case workaround to a
more general problem that should be solved centrally.

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

9 years agoAdding an AST node matcher for NonTypeTemplateParmDecl objects.
Aaron Ballman [Mon, 5 Oct 2015 19:44:42 +0000 (19:44 +0000)]
Adding an AST node matcher for NonTypeTemplateParmDecl objects.

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

9 years ago[sanitizer] Enable lsan for AArch64
Adhemerval Zanella [Mon, 5 Oct 2015 19:16:42 +0000 (19:16 +0000)]
[sanitizer] Enable lsan for AArch64

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

9 years agoRe-introduce the unique_ptr removed in r249328 and just make
Adrian Prantl [Mon, 5 Oct 2015 18:54:30 +0000 (18:54 +0000)]
Re-introduce the unique_ptr removed in r249328 and just make
~CodeGenABITypes out-of-line, which should have the same effect.

Thanks to David Blaikie for pointing this out!

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

9 years agoUndo the unique_ptr'fication of CodeGenABITypes::CGM introduced in r248762.
Adrian Prantl [Mon, 5 Oct 2015 17:41:16 +0000 (17:41 +0000)]
Undo the unique_ptr'fication of CodeGenABITypes::CGM introduced in r248762.
include/clang/CodeGenABITypes.h is in meant to be included by external
users, but using a unique_ptr on the private CodeGenModule introduces a
dependency on the type definition that prevents such a use.

NFC

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

9 years agoAdding a narrowing AST matcher for FunctionDecl::isVariadic(), plus tests and documen...
Aaron Ballman [Mon, 5 Oct 2015 14:41:27 +0000 (14:41 +0000)]
Adding a narrowing AST matcher for FunctionDecl::isVariadic(), plus tests and documentation.

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

9 years ago[VFS] Fix the windows build by including the right headers.
Benjamin Kramer [Mon, 5 Oct 2015 14:06:36 +0000 (14:06 +0000)]
[VFS] Fix the windows build by including the right headers.

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

9 years ago[VFS] Fix compilation on systems where time_t is not int64_t.
Benjamin Kramer [Mon, 5 Oct 2015 14:02:15 +0000 (14:02 +0000)]
[VFS] Fix compilation on systems where time_t is not int64_t.

No functional change intended.

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

9 years ago[VFS] Add working directories to every virtual file system.
Benjamin Kramer [Mon, 5 Oct 2015 13:55:20 +0000 (13:55 +0000)]
[VFS] Add working directories to every virtual file system.

For RealFileSystem this is getcwd()/chdir(), the synthetic file systems can
make up one for themselves. OverlayFileSystem now synchronizes the working
directories when a new FS is added to the overlay or the overlay working
directory is set. This allows purely artificial file systems that have zero
ties to the underlying disks.

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

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

9 years ago[VFS] Add an in-memory file system implementation.
Benjamin Kramer [Mon, 5 Oct 2015 13:55:14 +0000 (13:55 +0000)]
[VFS] Add an in-memory file system implementation.

This is a simple file system tree of memory buffers that can be filled by a
client. In conjunction with an OverlayFS it can be used to make virtual
files accessible right next to physical files. This can be used as a
replacement for the virtual file handling in FileManager and which I intend
to remove eventually.

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

9 years ago[VFS] Move class out of method so it looks less like Java.
Benjamin Kramer [Mon, 5 Oct 2015 13:55:09 +0000 (13:55 +0000)]
[VFS] Move class out of method so it looks less like Java.

No functionality change.

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

9 years agoclang-format: Small doc fix.
Daniel Jasper [Mon, 5 Oct 2015 13:30:42 +0000 (13:30 +0000)]
clang-format: Small doc fix.

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

9 years ago[VFS] Remove setName from the file interface.
Benjamin Kramer [Mon, 5 Oct 2015 13:15:33 +0000 (13:15 +0000)]
[VFS] Remove setName from the file interface.

This streamlines the interface a bit and makes Status more immutable.
No functional change intended.

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

9 years agoThe Driver does not set the +strict-align flag when targeting
Alexandros Lamprineas [Mon, 5 Oct 2015 12:45:10 +0000 (12:45 +0000)]
The Driver does not set the +strict-align flag when targeting
[ARM] armv6m + netbsd. Tests are misssing for armv6m + darwin as well.

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

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

9 years ago[mips][p5600] Add -mcpu=p5600 option.
Daniel Sanders [Mon, 5 Oct 2015 12:24:30 +0000 (12:24 +0000)]
[mips][p5600] Add -mcpu=p5600 option.

Summary:

Reviewers: vkalintiris, atanasyan

Subscribers: cfe-commits

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

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

9 years agoUse llvm::errc instead of std::errc.
Rafael Espindola [Mon, 5 Oct 2015 11:49:35 +0000 (11:49 +0000)]
Use llvm::errc instead of std::errc.

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

9 years ago[OpenCL] Fix casting a true boolean to an integer vector.
Anastasia Stulova [Mon, 5 Oct 2015 11:27:41 +0000 (11:27 +0000)]
[OpenCL] Fix casting a true boolean to an integer vector.

OpenCL v1.1 s6.2.2: for the boolean value true, every bit in the result vector should be set.

This change treats the i1 value as signed for the purposes of performing the cast to integer,
and therefore sign extend into the result.

Patch by Neil Hickey!

http://reviews.llvm.org/D13349

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

9 years agoRemove support for the mips-mti-linux toolchain.
Vasileios Kalintiris [Mon, 5 Oct 2015 10:34:46 +0000 (10:34 +0000)]
Remove support for the mips-mti-linux toolchain.

There are two remaining buildbot failures that we'll have to
investigate before submitting this again.

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

9 years agoFix test failure on Windows buildbots for the mips-mti-linux toolchain.
Vasileios Kalintiris [Mon, 5 Oct 2015 09:55:50 +0000 (09:55 +0000)]
Fix test failure on Windows buildbots for the mips-mti-linux toolchain.

Try to make the Windows buildbots happy by fixing the regexes that match the
paths to CRT files.

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

9 years agoRe-commit "Add support for the new mips-mti-linux toolchain."
Vasileios Kalintiris [Mon, 5 Oct 2015 09:12:36 +0000 (09:12 +0000)]
Re-commit "Add support for the new mips-mti-linux toolchain."

r249137 added support for the new mips-mti-linux toolchain. However,
the new tests of that commit, broke some buildbots because they didn't use
the correct regular expressions to capture the filename of Clang & LLD.

This commit re-applies the changes of r249137 and fixes the tests in
r249137 in order to match the filenames of the Clang and LLD executable.

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

9 years agoclang-format: Remove sentence in option cost threshold that weakens the
Daniel Jasper [Mon, 5 Oct 2015 07:36:40 +0000 (07:36 +0000)]
clang-format: Remove sentence in option cost threshold that weakens the
statement. Specifically, we don't want people that have already written
a patch to just write a style guide for their 1-person project.

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

9 years agoclang-format: Document threshold for adding new options.
Daniel Jasper [Mon, 5 Oct 2015 07:24:55 +0000 (07:24 +0000)]
clang-format: Document threshold for adding new options.

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

9 years ago[CMake] Move CLANG_INCLUDE_TESTS in advance of add_subdirectory(tools).
NAKAMURA Takumi [Mon, 5 Oct 2015 02:04:49 +0000 (02:04 +0000)]
[CMake] Move CLANG_INCLUDE_TESTS in advance of add_subdirectory(tools).

The target "check-clang-tools" is affected by CLANG_INCLUDE_TESTS but it was undefined in 1st configuration procedure.

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

9 years agoModule Debugging: Emit (ObjC) function declarations in the module scope
Adrian Prantl [Sun, 4 Oct 2015 23:23:04 +0000 (23:23 +0000)]
Module Debugging: Emit (ObjC) function declarations in the module scope
when building a module.

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

9 years agoFix makefile build on OSX when ARM targets are not enabled
Keno Fischer [Sun, 4 Oct 2015 18:51:04 +0000 (18:51 +0000)]
Fix makefile build on OSX when ARM targets are not enabled

Summary: When LLVM/Clang is built without ARM support, the ios_kext runtime
library is not built, but without this patch, the Makefile still tries to
copy it. This is a recent regression, because the ios_kext library used
to also be built on x86_64.

Reviewers: beanz

Subscribers: aemerson, cfe-commits, rengolin

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

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

9 years agoAdd -f[no-]declspec to control recognition of __declspec as a keyword
Saleem Abdulrasool [Sun, 4 Oct 2015 17:51:05 +0000 (17:51 +0000)]
Add -f[no-]declspec to control recognition of __declspec as a keyword

In versions of clang prior to r238238, __declspec was recognized as a keyword in
all modes.  It was then changed to only be enabled when Microsoft or Borland
extensions were enabled (and for CUDA, as a temporary measure).  There is a
desire to support __declspec in Playstation code, and possibly other
environments.  This commit adds a command-line switch to allow explicit
enabling/disabling of the recognition of __declspec as a keyword.  Recognition
is enabled by default in Microsoft, Borland, CUDA, and PS4 environments, and
disabled in all other environments.

Patch by Warren Ristow!

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

9 years agoPass SourceRange by value in a test I missed in r249259.
Craig Topper [Sun, 4 Oct 2015 05:09:13 +0000 (05:09 +0000)]
Pass SourceRange by value in a test I missed in r249259.

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

9 years agoSourceRanges are small and trivially copyable, don't them by reference.
Craig Topper [Sun, 4 Oct 2015 04:53:55 +0000 (04:53 +0000)]
SourceRanges are small and trivially copyable, don't them by reference.

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

9 years agoDiagnose const atomics in __atomic builtins.
Eric Fiselier [Sun, 4 Oct 2015 00:11:02 +0000 (00:11 +0000)]
Diagnose const atomics in __atomic builtins.

Diagnose when a pointer to const T is used as the first argument in at atomic
builtin unless that builtin is a load operation. This is already checked for
C11 atomics builtins but not for __atomic ones.

This patch was given the LGTM by rsmith when it was part
of a larger review. (See http://reviews.llvm.org/D10407)

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

9 years agoReplace double negation of !FileID.isInvalid() with FileID.isValid().
Yaron Keren [Sat, 3 Oct 2015 10:46:20 +0000 (10:46 +0000)]
Replace double negation of !FileID.isInvalid() with FileID.isValid().
+couple more of double-negated !SourceLocation.isInvalid() unfixed in r249228.

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

9 years agofix previous commit
Saleem Abdulrasool [Sat, 3 Oct 2015 07:15:28 +0000 (07:15 +0000)]
fix previous commit

Forgot to add the '='.  In cl mode, --target must have an '='.

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

9 years agotry to fix the ARM self host bots
Saleem Abdulrasool [Sat, 3 Oct 2015 06:37:38 +0000 (06:37 +0000)]
try to fix the ARM self host bots

The default target is ARM on the ARM self host bots.  This is problematic since
the behaviour on x86, x64 is different from ARM.  Explicitly pass the target.
This should hopefully fix the ARM bots.

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

9 years agoReplace double-negated !SourceLocation.isInvalid() with SourceLocation.isValid().
Yaron Keren [Sat, 3 Oct 2015 05:15:57 +0000 (05:15 +0000)]
Replace double-negated !SourceLocation.isInvalid() with SourceLocation.isValid().

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

9 years agoDriver: follow WoA ABI recommendations
Saleem Abdulrasool [Sat, 3 Oct 2015 03:39:28 +0000 (03:39 +0000)]
Driver: follow WoA ABI recommendations

The Windows on ARM ABI recommends that FPO be disabled.  This is since the
Windows on ARM ABI uses the FP for fast stack walking.  By paying the slight
cost of the loss of registers, a much faster backtrace is possible by using the
frame pointer since the pdata need not be consulted.  Furthermore, even if pdata
is not available, you can still more easily reconstruct the stack.

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

9 years agoFix clang/test/CodeGenCXX/strict-vtable-pointers.cpp for -Asserts. It missed somethin...
NAKAMURA Takumi [Sat, 3 Oct 2015 00:50:12 +0000 (00:50 +0000)]
Fix clang/test/CodeGenCXX/strict-vtable-pointers.cpp for -Asserts. It missed something. :)

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

9 years ago[libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int inste...
Kostya Serebryany [Fri, 2 Oct 2015 23:34:37 +0000 (23:34 +0000)]
[libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return int instead of void. (following llvm r249214)

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

9 years ago[Headers][X86] Fix stream_load (movntdqa) to accept const*.
Ahmed Bougacha [Fri, 2 Oct 2015 23:29:26 +0000 (23:29 +0000)]
[Headers][X86] Fix stream_load (movntdqa) to accept const*.

Per Intel intrinsics guide:
- _mm256_stream_load_si256 takes `__m256i const *'
- _mm_stream_load_si128 takes `__m128i *', for no good reason.

Let's accept const* for both.

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

9 years agoDon't nil check non-nil class receiver of AArch64 stret calls.
Ahmed Bougacha [Fri, 2 Oct 2015 22:41:59 +0000 (22:41 +0000)]
Don't nil check non-nil class receiver of AArch64 stret calls.

I randomly came across this difference between AArch64 and other targets:
on the latter, we don't emit nil checks for known non-nil class method
calls thanks to r247350, but we still do for AArch64 stret calls.

They use different code paths, because those are special, as they go
through the regular msgSend, not the msgSend*_stret variants.

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

9 years agoEmiting invariant.group.barrier for ctors bugfix
Piotr Padlewski [Fri, 2 Oct 2015 22:12:40 +0000 (22:12 +0000)]
Emiting invariant.group.barrier for ctors bugfix

Ensure that the vptr store in the most-derived constructor is not behind
an invariant group barrier. Previously, the base-most vptr store would
be the one behind no barrier, and that could result in the creator of
the object thinking it had the base-most vtable.
This bug caused clang call pure virtual functions when called from
constructor body.

http://reviews.llvm.org/D13373

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

9 years ago[WebAssembly] Add a __builtin_wasm_resize_memory() intrinsic.
Dan Gohman [Fri, 2 Oct 2015 20:20:01 +0000 (20:20 +0000)]
[WebAssembly] Add a __builtin_wasm_resize_memory() intrinsic.

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

9 years ago[WebAssembly] Add a __builtin_wasm_memory_size() intrinsic.
Dan Gohman [Fri, 2 Oct 2015 19:38:47 +0000 (19:38 +0000)]
[WebAssembly] Add a __builtin_wasm_memory_size() intrinsic.

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

9 years ago[Myriad]: Accept '-nostdlib' option
Douglas Katzman [Fri, 2 Oct 2015 18:39:08 +0000 (18:39 +0000)]
[Myriad]: Accept '-nostdlib' option

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

9 years agoconstify four getInstantiatedFromMemberTemplate() in DeclTemplate.h.
Yaron Keren [Fri, 2 Oct 2015 17:38:57 +0000 (17:38 +0000)]
constify four getInstantiatedFromMemberTemplate() in DeclTemplate.h.

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

9 years agoModule debugging: Don't emit forward declarations in module scopes.
Adrian Prantl [Fri, 2 Oct 2015 17:36:14 +0000 (17:36 +0000)]
Module debugging: Don't emit forward declarations in module scopes.
A forward declaration inside a module header does not belong to the module.

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

9 years agoBreak long lines for readability.
Adrian Prantl [Fri, 2 Oct 2015 17:36:10 +0000 (17:36 +0000)]
Break long lines for readability.

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

9 years agoRemove unused variable.
Adrian Prantl [Fri, 2 Oct 2015 17:36:03 +0000 (17:36 +0000)]
Remove unused variable.

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

9 years ago[OpenMP] Capture global variables in target regions.
Samuel Antao [Fri, 2 Oct 2015 17:14:03 +0000 (17:14 +0000)]
[OpenMP] Capture global variables in target regions.

All global variables that are not enclosed in a declare target region
must be captured in the target region as local variables do. Currently,
there is no support for declare target, so this patch adds support for
capturing all the global variables used in a the target region.

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

9 years agoconstify ClassTemplatePartialSpecializationDecl::getInstantiatedFromMember and VarTem...
Yaron Keren [Fri, 2 Oct 2015 16:40:48 +0000 (16:40 +0000)]
constify ClassTemplatePartialSpecializationDecl::getInstantiatedFromMember and VarTemplatePartialSpecializationDecl::getInstantiatedFromMember.

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

9 years ago[OpenMP] Target directive host codegen.
Samuel Antao [Fri, 2 Oct 2015 16:14:20 +0000 (16:14 +0000)]
[OpenMP] Target directive host codegen.

This patch implements the outlining for offloading functions for code
annotated with the OpenMP target directive. It uses a temporary naming
of the outlined functions that will have to be updated later on once
target side codegen and registration of offloading libraries is
implemented - the naming needs to be made unique in the produced
library.

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

9 years ago[DarwinDriver] Reapply: Use -lto_library to specify the path for libLTO.dylib
Bruno Cardoso Lopes [Fri, 2 Oct 2015 15:10:33 +0000 (15:10 +0000)]
[DarwinDriver] Reapply: Use -lto_library to specify the path for libLTO.dylib

Reapply r248935.

Usually, when using LTO with a clang installation newer than the
system's one, there's a libLTO.dylib version mismatch and LTO fails. One
solution to this is to make ld point to the right libLTO.dylib by
changing DYLD_LIBRARY_PATH.

However, ld64 supports specifying the complete path to the desired
libLTO.dylib through the -lto_library option. This commit adds support
for the clang driver to use this option whenever it's capable of finding
a libLTO.dylib in clang's installed library directory. This way, we
don't need to rely on DYLD_LIBRARY_PATH nor get caught by version
mismatches.

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

rdar://problem/7363476

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

9 years agoMake test more resilient to FastIsel changes. NFC.
Andrea Di Biagio [Fri, 2 Oct 2015 15:10:22 +0000 (15:10 +0000)]
Make test more resilient to FastIsel changes. NFC.

Currently FastISel doesn't know how to select vector bitcasts.
During instruction selection, fast-isel always falls back to SelectionDAG
every time it encounters a vector bitcast.
As a consequence of this, all the 'packed vector shift by immedate count'
test cases in avx2-builtins.c are optimized by the DAGCombiner.
In particular, the DAGCombiner would always fold trivial stack loads of
constant shift counts into the operands of packed shift builtins.

This behavior would start changing as soon as I reapply revision 249121.
That revision would teach x86 fast-isel how to select bitcasts between vector
types of the same size.

As a consequence of that change, fast-isel would less often fall back to
SelectionDAG. More importantly, DAGCombiner would no longer be able to
simplify the code by folding the stack reload of a constant.

No functional change.

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

9 years agoRevert "Add support for the new mips-mti-linux toolchain."
Vasileios Kalintiris [Fri, 2 Oct 2015 15:00:55 +0000 (15:00 +0000)]
Revert "Add support for the new mips-mti-linux toolchain."

This reverts commit r249137 because it broke the Windows buildbots and
a Linux buildbot for LLD.

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

9 years agoImplement ACLE 2.0 macros of chapters 6.6 and 6.7 for [ARM] and [Aarch64] targets.
Alexandros Lamprineas [Fri, 2 Oct 2015 14:56:37 +0000 (14:56 +0000)]
Implement ACLE 2.0 macros of chapters 6.6 and 6.7 for [ARM] and [Aarch64] targets.

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

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

9 years agoFix bogus comment.
Douglas Katzman [Fri, 2 Oct 2015 14:41:38 +0000 (14:41 +0000)]
Fix bogus comment.

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

9 years agoAdd support for the new mips-mti-linux toolchain.
Vasileios Kalintiris [Fri, 2 Oct 2015 14:38:23 +0000 (14:38 +0000)]
Add support for the new mips-mti-linux toolchain.

Summary:
This new toolchain uses primarily LLVM-based tools, eg. compiler-rt, lld,
libcxx, etc. Because of this, it doesn't require neither an existing GCC
installation nor a GNU environment. Ideally, in a follow-up patch we
would like to add a new --{llvm|clang}-toolchain option (similar to
--gcc-toolchain) in order to allow the use of this toolchain with
independent Clang builds. For the time being, we use the --sysroot
option just to test the correctness of the paths generated by the
driver.

Reviewers: atanasyan, dsanders, rsmith

Subscribers: jfb, tberghammer, danalbert, srhines, dschuff, cfe-commits

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

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

9 years agoMove functions declared in Stmt{ObjC,CXX}.h and OpenMPClause.h into
James Y Knight [Fri, 2 Oct 2015 13:41:04 +0000 (13:41 +0000)]
Move functions declared in Stmt{ObjC,CXX}.h and OpenMPClause.h into
their associated .cpp file.

Previous refactorings long long ago had split out the above categories
of classes from Stmt.h into their own header files, but failed to also
split the Stmt.cpp implementation file similarly. Do so for
readability's sake.

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

9 years agoDivide TraverseInitListExpr to a different function for each form.
Angel Garcia Gomez [Fri, 2 Oct 2015 13:25:51 +0000 (13:25 +0000)]
Divide TraverseInitListExpr to a different function for each form.

Summary: create TraverseSyntacticInitListExpr and TraverseSemanticInitListExpr.

Reviewers: rsmith, klimek

Subscribers: klimek, cfe-commits, alexfh

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

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

9 years agoBe slightly more permissive when checking for type-erased blocks.
Bob Wilson [Fri, 2 Oct 2015 01:05:29 +0000 (01:05 +0000)]
Be slightly more permissive when checking for type-erased blocks.

This is a patch from Doug that was inadvertently omitted from r241543.

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

9 years ago[CMake] Fixing clang bootstrap to use LLVM_RUNTIME_OUTPUT_INTDIR instead of CMAKE_BIN...
Chris Bieneman [Fri, 2 Oct 2015 00:56:53 +0000 (00:56 +0000)]
[CMake] Fixing clang bootstrap to use LLVM_RUNTIME_OUTPUT_INTDIR instead of CMAKE_BINARY_DIR.

This should make bootstrap builds work with multi-configuration generators.

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

9 years agoPR24921: checking explicitly-specified template arguments when matching a
Richard Smith [Fri, 2 Oct 2015 00:49:37 +0000 (00:49 +0000)]
PR24921: checking explicitly-specified template arguments when matching a
partial specialization can perform conversions on the argument. Be sure we
start again from the original argument when checking each possible template.

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

9 years agoExplicitly delete a function that is supposed to never be called.
Richard Smith [Fri, 2 Oct 2015 00:46:58 +0000 (00:46 +0000)]
Explicitly delete a function that is supposed to never be called.

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

9 years agoFix the SSE4 byte sign extension in a cleaner way, and more thoroughly
Chandler Carruth [Thu, 1 Oct 2015 23:40:12 +0000 (23:40 +0000)]
Fix the SSE4 byte sign extension in a cleaner way, and more thoroughly
test that our intrinsics behave the same under -fsigned-char and
-funsigned-char.

This further testing uncovered that AVX-2 has a broken cmpgt for 8-bit
elements, and has for a long time. This is fixed in the same way as
SSE4 handles the case.

The other ISA extensions currently work correctly because they use
specific instruction intrinsics. As soon as they are rewritten in terms
of generic IR, they will need to add these special casts. I've added the
necessary testing to catch this however, so we shouldn't have to chase
it down again.

I considered changing the core typedef to be signed, but that seems like
a bad idea. Notably, it would be an ABI break if anyone is reaching into
the innards of the intrinsic headers and passing __v16qi on an API
boundary. I can't be completely confident that this wouldn't happen due
to a macro expanding in a lambda, etc., so it seems much better to leave
it alone. It also matches GCC's behavior exactly.

A fun side note is that for both GCC and Clang, -funsigned-char really
does change the semantics of __v16qi. To observe this, consider:

  % cat x.cc
  #include <smmintrin.h>
  #include <iostream>

  int main() {
    __v16qi a = { 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    __v16qi b = _mm_set1_epi8(-1);
    std::cout << (int)(a / b)[0] << ", " << (int)(a / b)[1] << '\n';
  }
  % clang++ -o x x.cc && ./x
  -1, 1
  % clang++ -funsigned-char -o x x.cc && ./x
  0, 1

However, while this may be surprising, both Clang and GCC agree.

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

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

9 years agoDon't try to get a CXXRecordDecl from a non-class TemplateSpecializationType.
Kaelyn Takata [Thu, 1 Oct 2015 22:38:51 +0000 (22:38 +0000)]
Don't try to get a CXXRecordDecl from a non-class TemplateSpecializationType.

With -fms-extensions it is possible to have a non-class record that is a
template specialization cause an assertion failure via the call to
Type::getAsCXXRecordDecl. Fixes PR 24246.

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

9 years agoDon't adjust field offsets when using external record layout.
Zachary Turner [Thu, 1 Oct 2015 22:08:02 +0000 (22:08 +0000)]
Don't adjust field offsets when using external record layout.

This was already being done when injecting the VBPtr, but not
when injecting the VFPtr.  This fixes a number of tests in LLDB's
test suite.

Reviewed by: David Majnemer
Differential Revision: http://reviews.llvm.org/D13276

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

9 years agoPerform Objective-C lifetime adjustments before comparing deduced lambda result types.
Douglas Gregor [Thu, 1 Oct 2015 20:20:47 +0000 (20:20 +0000)]
Perform Objective-C lifetime adjustments before comparing deduced lambda result types.

Objective-C ARC lifetime qualifiers are dropped when canonicalizing
function types. Perform the same adjustment before comparing the
deduced result types of lambdas. Fixes rdar://problem/22344904.

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

9 years ago[analyzer] Add TK_EntireMemSpace invalidation trait.
Devin Coughlin [Thu, 1 Oct 2015 20:09:11 +0000 (20:09 +0000)]
[analyzer] Add TK_EntireMemSpace invalidation trait.

This commit supports Sean Eveson's work on loop widening. It is NFC for now.
It adds a new TK_EntireMemSpace invalidation trait that, when applied to a
MemSpaceRegion, indicates that the entire memory space should be invalidated.

Clients can add this trait before invalidating. For example:

RegionAndSymbolInvalidationTraits ITraits;
ITraits.setTrait(MRMgr.getStackLocalsRegion(STC),
                 RegionAndSymbolInvalidationTraits::TK_EntireMemSpace);

This commit updates the existing logic invalidating global memspace regions for
calls to additionally handle arbitrary memspaces. When generating initial
clusters during cluster analysis we now add a cluster to the worklist if
the memspace for its base is marked with TK_EntireMemSpace.

This also moves the logic for invalidating globals from ClusterAnalysis to
invalidateRegionsWorker so that it is not shared with removeDeadBindingsWorker.

There are no explicit tests with this patch -- but when applied to Sean's patch
for loop widening in http://reviews.llvm.org/D12358 and after updating his code
to set the trait, the failing tests in that patch now pass.

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

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

9 years agoSimplify Sema::DeduceFunctionTypeFromReturnExpr and eliminae a redundant check.
Douglas Gregor [Thu, 1 Oct 2015 19:52:44 +0000 (19:52 +0000)]
Simplify Sema::DeduceFunctionTypeFromReturnExpr and eliminae a redundant check.

NFC

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

9 years agoTeach -Wtautological-overlap-compare about enums
George Burgess IV [Thu, 1 Oct 2015 18:47:52 +0000 (18:47 +0000)]
Teach -Wtautological-overlap-compare about enums

Prior to this patch, -Wtautological-overlap-compare would only warn us
if there was a sketchy logical comparison between variables and
IntegerLiterals. This patch makes -Wtautological-overlap-compare aware
of EnumConstantDecls, so it can apply the same logic to them.

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

9 years agoModule debugging: Also emit Objective-C interfaces forward declarations
Adrian Prantl [Thu, 1 Oct 2015 16:57:02 +0000 (16:57 +0000)]
Module debugging: Also emit Objective-C interfaces forward declarations
in their module scope when building a clang module.

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

9 years agoAllow a ToolChain to compute the path of a compiler-rt's component.
Vasileios Kalintiris [Thu, 1 Oct 2015 16:54:58 +0000 (16:54 +0000)]
Allow a ToolChain to compute the path of a compiler-rt's component.

Summary:
This patch moves getCompilerRT() from the clang::driver::tools namespace to
the ToolChain class. This is needed for multilib toolchains that need to
place their libraries in Clang's resource directory with a layout that is
different from the default one.

Reviewers: atanasyan, rsmith

Subscribers: tberghammer, danalbert, srhines, cfe-commits

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

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

9 years ago[VFS] Remove unused setters. NFC.
Benjamin Kramer [Thu, 1 Oct 2015 15:02:15 +0000 (15:02 +0000)]
[VFS] Remove unused setters. NFC.

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

9 years ago[PowerPC] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* macros on all PPC cores
Hal Finkel [Thu, 1 Oct 2015 13:39:49 +0000 (13:39 +0000)]
[PowerPC] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* macros on all PPC cores

We support all __sync_val_compare_and_swap_* builtins (only 64-bit on 64-bit
targets) on all cores, and should define the corresponding
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_* macros, just as GCC does. As it turns out,
this is really important because they're needed to prevent a bad ODR violation
with libstdc++'s std::shared_ptr (this is well explained in PR12730).

We were doing this only for P8, but this is necessary on all PPC systems.

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

9 years agoRevert "Decorating virtual functions load with invariant.load" and fix
Renato Golin [Thu, 1 Oct 2015 12:58:41 +0000 (12:58 +0000)]
Revert "Decorating virtual functions load with invariant.load" and fix

This reverts commit r248982 as it was breaking the ARM buildbots and the fix didn't work.
This reverts commit r248984, the fix that didn't work.

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

9 years agoC++11 rangify for loops, NFC.
Yaron Keren [Thu, 1 Oct 2015 11:19:28 +0000 (11:19 +0000)]
C++11 rangify for loops, NFC.

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

9 years ago[clang-format] Add support of consecutive declarations alignment
Daniel Jasper [Thu, 1 Oct 2015 10:06:54 +0000 (10:06 +0000)]
[clang-format] Add support of consecutive declarations alignment

This allows clang-format to align identifiers in consecutive
declarations. This is useful for increasing the readability of the code
in the same way the alignment of assignations is.

The code is a slightly modified version of the consecutive assignment
alignment code. Currently only the identifiers are aligned, and there is
no support of alignment of the pointer star or reference symbol.

The patch also solve the issue of alignments not being possible due to
the ColumnLimit for both the existing AlignConsecutiveAligments and the
new AlignConsecutiveDeclarations.

Patch by Beren Minor, thank you.

Review: http://reviews.llvm.org/D12362

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

9 years agoTest fix
Piotr Padlewski [Thu, 1 Oct 2015 04:19:45 +0000 (04:19 +0000)]
Test fix

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

9 years agoDecorating virtual functions load with invariant.load
Piotr Padlewski [Thu, 1 Oct 2015 03:50:41 +0000 (03:50 +0000)]
Decorating virtual functions load with invariant.load

http://reviews.llvm.org/D13279

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

9 years agoPatch over a really horrible bug in our vector builtins that showed up
Chandler Carruth [Thu, 1 Oct 2015 02:21:34 +0000 (02:21 +0000)]
Patch over a really horrible bug in our vector builtins that showed up
recently when we started using direct conversion to model sign
extension. The __v16qi type we use for SSE v16i8 vectors is defined in
terms of 'char' which may or may not be signed! This causes us to
generate pmovsx and pmovzx depending on the setting of -funsigned-char.

This patch just forms an explicitly signed type and uses that to
formulate the sign extension. While this gets the correct behavior
(which we now verify with the enhanced test) this is just the tip of the
ice berg. Now that I know what to look for, I have found errors of this
sort *throughout* our vector code. Fortunately, this is the only
specific place where I know of users actively having their code
miscompiled by Clang due to this, so I'm keeping the fix for those users
minimal and targeted.

I'll be sending a proper email for discussion of how to fix these
systematically, what the implications are, and just how widely broken
this is... From what I can tell, we have never shipped a correct set of
builtin headers for x86 when users rely on -funsigned-char. Oops.

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

9 years agocreateUniqueFile() is documented to create the file in the temporary directory unless...
Cameron Esfahani [Thu, 1 Oct 2015 01:24:59 +0000 (01:24 +0000)]
createUniqueFile() is documented to create the file in the temporary directory unless it's supplied an absolute path.

Make sure the output filepath supplied to createUniqueFile() in HTMLDiagnostics::ReportDiag() is absolute.

Summary: Make sure the output filepath supplied to createUniqueFile() in HTMLDiagnostics::ReportDiag() is absolute.

Reviewers: rsmith, akyrtzi

Subscribers: cfe-commits

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

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

9 years agoFix printing of parameterized Objective-C interfaces.
Bob Wilson [Thu, 1 Oct 2015 00:53:13 +0000 (00:53 +0000)]
Fix printing of parameterized Objective-C interfaces.

This change was accidentally omitted from Doug's change in r241541.

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

9 years agoModule debugging: Emit Objective-C interfaces in their module scope when
Adrian Prantl [Thu, 1 Oct 2015 00:48:51 +0000 (00:48 +0000)]
Module debugging: Emit Objective-C interfaces in their module scope when
building a clang module.

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

9 years ago[Sema] Don't crash when friending an unqualified templated constructor
David Majnemer [Wed, 30 Sep 2015 22:07:43 +0000 (22:07 +0000)]
[Sema] Don't crash when friending an unqualified templated constructor

Unqualified templated constructors cannot be friended and our lack of a
diagnostic led to violated invariants.  Instead, raise a diagnostic when
processing the friend declaration.

This fixes PR20251.

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

9 years ago[CUDA] fix codegen for __nvvm_atom_cas_*
Jingyue Wu [Wed, 30 Sep 2015 21:49:32 +0000 (21:49 +0000)]
[CUDA] fix codegen for __nvvm_atom_cas_*

Summary: __nvvm_atom_cas_* returns the old value instead of whether the swap succeeds.

Reviewers: eliben, tra

Subscribers: jholewinski, llvm-commits

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

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

9 years agoDon't inherit the "unavailable" attribute from an overridden superclass method.
Douglas Gregor [Wed, 30 Sep 2015 21:34:33 +0000 (21:34 +0000)]
Don't inherit the "unavailable" attribute from an overridden superclass method.

Fixes rdar://problem/22922259.

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

9 years agoDon't inherit availability information when implementing a protocol requirement.
Douglas Gregor [Wed, 30 Sep 2015 21:27:42 +0000 (21:27 +0000)]
Don't inherit availability information when implementing a protocol requirement.

When an Objective-C method implements a protocol requirement, do not
inherit any availability information from the protocol
requirement. Rather, check that the implementation is not less
available than the protocol requirement, as we do when overriding a
method that has availability. Fixes rdar://problem/22734745.

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

9 years agoRevert "[DarwinDriver] Use -lto_library to specify the path for libLTO.dylib"
Bruno Cardoso Lopes [Wed, 30 Sep 2015 20:11:02 +0000 (20:11 +0000)]
Revert "[DarwinDriver] Use -lto_library to specify the path for libLTO.dylib"

Revert r248932. Bots complaining about new warnings where they shouldn't.

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

9 years ago[DarwinDriver] Use -lto_library to specify the path for libLTO.dylib
Bruno Cardoso Lopes [Wed, 30 Sep 2015 19:55:07 +0000 (19:55 +0000)]
[DarwinDriver] Use -lto_library to specify the path for libLTO.dylib

Usually, when using LTO with a clang installation newer than the
system's one, there's a libLTO.dylib version mismatch and LTO fails. One
solution to this is to make ld point to the right libLTO.dylib by
changing DYLD_LIBRARY_PATH.

However, ld64 supports specifying the complete path to the desired
libLTO.dylib through the -lto_library option. This commit adds support
for the clang driver to use this option whenever it's capable of finding
a libLTO.dylib in clang's installed library directory. This way, we
don't need to rely on DYLD_LIBRARY_PATH nor get caught by version
mismatches.

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

rdar://problem/7363476

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

9 years agoclang-format: Add clangRewrite dependency to fix cmake build.
Daniel Jasper [Wed, 30 Sep 2015 19:28:47 +0000 (19:28 +0000)]
clang-format: Add clangRewrite dependency to fix cmake build.

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

9 years agoDon't correct non-class using declarations to class members.
Kaelyn Takata [Wed, 30 Sep 2015 18:23:35 +0000 (18:23 +0000)]
Don't correct non-class using declarations to class members.

Such declarations would be invalid anyway, and trying to make the
correction will lead to a crash. Fixes PR 24781.

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

9 years ago[Sema] Avoid crashing during this-> insertion recovery
Reid Kleckner [Wed, 30 Sep 2015 17:30:48 +0000 (17:30 +0000)]
[Sema] Avoid crashing during this-> insertion recovery

We get into this bad state when someone defines a new member function
for a class but forgets to add the declaration to the class body.
Calling the new member function from a member function template of the
class will crash during instantiation.

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

9 years agoAlias "-ggdbN" to "-gN" options, fixing some incompatibilities.
Douglas Katzman [Wed, 30 Sep 2015 15:55:59 +0000 (15:55 +0000)]
Alias "-ggdbN" to "-gN" options, fixing some incompatibilities.

* assembling from a .s file mistook -ggdb0 for -g
* -ggdb1 is supposed to mean basically -g1, not -gN for N>1

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

9 years ago[OpenCL 2.0] Enable program scope variables, Section 6.5.1.
Anastasia Stulova [Wed, 30 Sep 2015 14:08:20 +0000 (14:08 +0000)]
[OpenCL 2.0] Enable program scope variables, Section 6.5.1.

 - Remove virtual SC_OpenCLWorkGroupLocal storage type specifier
as it conflicts with static local variables now and prevents
diagnosing static local address space variables correctly.

 - Allow static local and global variables (OpenCL2.0 s6.8 and s6.5.1).

 - Improve diagnostics of allowed ASes for variables in different scopes:
(i) Global or static local variables have to be in global
or constant ASes (OpenCL1.2 s6.5, OpenCL2.0 s6.5.1);
(ii) Non-kernel function variables can't be declared in local
or constant ASes (OpenCL1.1 s6.5.2 and s6.5.3).

http://reviews.llvm.org/D13105

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

9 years agoFix FunctionParmPackExpr::Create() to take a ParmVarDecl* array.
James Y Knight [Wed, 30 Sep 2015 14:04:23 +0000 (14:04 +0000)]
Fix FunctionParmPackExpr::Create() to take a ParmVarDecl* array.

FunctionParmPackExpr actually stores an array of ParmVarDecl* (and
accessors return that). But, the FunctionParmPackExpr::Create()
constructor accepted an array of Decl *s instead.

It was easy for this mismatch to occur without any obvious sign of
something wrong, since both the store and the access used independent
'reinterpet_cast<XX>(this+1)' calls.

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

9 years agoclang-format: Use Rewriter again to write the output files.
Daniel Jasper [Wed, 30 Sep 2015 13:59:29 +0000 (13:59 +0000)]
clang-format: Use Rewriter again to write the output files.

This has two advantages:
1. Atomic writes.
2. Proper handling of line endings (hopefully solving llvm.org/PR24999

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