]> granicus.if.org Git - clang/log
clang
8 years agoAdd "-Wc++11-inline-namespace" so that libc++ can use -pedantic in C++03.
Eric Fiselier [Fri, 16 Oct 2015 00:31:36 +0000 (00:31 +0000)]
Add "-Wc++11-inline-namespace" so that libc++ can use -pedantic in C++03.

Summary: The title says it all.

Reviewers: rsmith

Subscribers: cfe-commits

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

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

8 years agoMark this test as requiring and x86 registered target.
Eric Christopher [Fri, 16 Oct 2015 00:14:36 +0000 (00:14 +0000)]
Mark this test as requiring and x86 registered target.

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

8 years agoAdd an error when calling a builtin that requires features that don't
Eric Christopher [Thu, 15 Oct 2015 23:47:11 +0000 (23:47 +0000)]
Add an error when calling a builtin that requires features that don't
match the feature set of the function that they're being called from.

This ensures that we can effectively diagnose some[1] code that would
instead ICE in the backend with a failure to select message.

Example:

__m128d foo(__m128d a, __m128d b) {
  return __builtin_ia32_addsubps(b, a);
}

compiled for normal x86_64 via:

clang -target x86_64-linux-gnu -c

would fail to compile in the back end because the normal subtarget
features for x86_64 only include sse2 and the builtin requires sse3.

[1] We're still not erroring on:

__m128i bar(__m128i const *p) { return _mm_lddqu_si128(p); }

where we should fail and error on an always_inline function being
inlined into a function that doesn't support the subtarget features
required.

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

8 years agoFix the subtarget features required by some x86 builtins.
Eric Christopher [Thu, 15 Oct 2015 22:46:02 +0000 (22:46 +0000)]
Fix the subtarget features required by some x86 builtins.

Update the fma builtins to be fma/fma4 until some we can find some
documentation either way.

Update a couple of the avx intrinsics because they were in the wrong
category.

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

8 years agoAdd llvm-bcanalyzer to list of clang test dependences
Teresa Johnson [Thu, 15 Oct 2015 21:06:53 +0000 (21:06 +0000)]
Add llvm-bcanalyzer to list of clang test dependences

This addresses a bot failure from r250455, since new Misc/thinlto.c
test uses it.

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

8 years agoRecommit "Clang support for -flto=thin."
Teresa Johnson [Thu, 15 Oct 2015 20:35:53 +0000 (20:35 +0000)]
Recommit "Clang support for -flto=thin."

This recommits r250398 with fixes to the tests for bot failures.

Add "-target x86_64-unknown-linux" to the clang invocations that
check for the gold plugin.

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

8 years agoThe target-feature command line option doesn't take a comma delimited
Eric Christopher [Thu, 15 Oct 2015 20:04:42 +0000 (20:04 +0000)]
The target-feature command line option doesn't take a comma delimited
string, so split them into multiple options.

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

8 years agoAdd the minimum target features that these tests depend upon.
Eric Christopher [Thu, 15 Oct 2015 20:04:40 +0000 (20:04 +0000)]
Add the minimum target features that these tests depend upon.

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

8 years agoclang-format: Basic escaping when outputting XML.
Daniel Jasper [Thu, 15 Oct 2015 18:39:31 +0000 (18:39 +0000)]
clang-format: Basic escaping when outputting XML.

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

8 years agoPut back doxygen comment accidentally dropped in r250418.
Benjamin Kramer [Thu, 15 Oct 2015 16:46:25 +0000 (16:46 +0000)]
Put back doxygen comment accidentally dropped in r250418.

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

8 years agoclang-format/java: Break after annotations on fields in Chromium style.
Nico Weber [Thu, 15 Oct 2015 16:03:01 +0000 (16:03 +0000)]
clang-format/java: Break after annotations on fields in Chromium style.

Chromium follows the Android style guide for Java code, and that doesn't make
the distinction between fields and non-fields that the Google Java style guide
makes:

https://source.android.com/source/code-style.html#use-standard-java-annotations
https://google.github.io/styleguide/javaguide.html#s4.8.5-annotations

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

8 years ago[CodeGen] Remove dead code. NFC.
Benjamin Kramer [Thu, 15 Oct 2015 15:29:40 +0000 (15:29 +0000)]
[CodeGen] Remove dead code. NFC.

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

8 years agoAdd support for CloudABI/aarch64.
Ed Schouten [Thu, 15 Oct 2015 15:07:07 +0000 (15:07 +0000)]
Add support for CloudABI/aarch64.

The core C library has already been ported over to aarch64 successfully,
meaning there is no reason to hold this change back.

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

8 years agoTweak to make clang/test/Driver/ps4-linker-win.c less sinsitive of DLL path.
NAKAMURA Takumi [Thu, 15 Oct 2015 13:51:13 +0000 (13:51 +0000)]
Tweak to make clang/test/Driver/ps4-linker-win.c less sinsitive of DLL path.

  - On mingw-w64, libstdc++-6.dll is used for clang.exe. The DLL might not be in Windows' system directory.
  - With --enable-shared, DLLs might be in ${CMAKE_BINARY_DIR}/bin.

I understand this test confirms that appropriate name of executable can be found on %PATH%.
Therefore I added "Output\\" before each expression.

FIXME: The output directory %T is hardcoded like "Output\\ps4-ld.exe".

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

8 years agoRevert "Clang support for -flto=thin." (bot failures)
Teresa Johnson [Thu, 15 Oct 2015 13:41:51 +0000 (13:41 +0000)]
Revert "Clang support for -flto=thin." (bot failures)

Rolling this back for now since there are a couple of bot failures on
the new tests I added, and I won't have a chance to look at them in detail
until later this afternoon. I think the new tests need some restrictions on
having the gold plugin available.

This reverts commit r250398.

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

8 years agoClang support for -flto=thin.
Teresa Johnson [Thu, 15 Oct 2015 13:08:13 +0000 (13:08 +0000)]
Clang support for -flto=thin.

Summary:
Add clang support for -flto=thin option, which is used to set the
EmitFunctionSummary code gen option on compiles.

Add -flto=full as an alias to the existing -flto.

Add tests to check for proper overriding of -flto variants on the
command line, and convert grep tests to FileCheck.

Reviewers: dexonsmith, joker.eph

Subscribers: davidxl, cfe-commits

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

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

8 years agoHeaders: Switch some headers to LF line endings for consistency.
Peter Collingbourne [Thu, 15 Oct 2015 10:33:27 +0000 (10:33 +0000)]
Headers: Switch some headers to LF line endings for consistency.

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

8 years agoUpdate clang for DIBuilder::createSubroutineType API change.
Eric Christopher [Thu, 15 Oct 2015 06:56:08 +0000 (06:56 +0000)]
Update clang for DIBuilder::createSubroutineType API change.

Patch by Amaury Sechet!

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

8 years ago[X86] Add proper feature names to xsave builtins.
Craig Topper [Thu, 15 Oct 2015 05:23:46 +0000 (05:23 +0000)]
[X86] Add proper feature names to xsave builtins.

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

8 years ago[X86] Add command line switches for xsave/xsaveopt/xsavec/xsaves. Macro defines for...
Craig Topper [Thu, 15 Oct 2015 05:23:38 +0000 (05:23 +0000)]
[X86] Add command line switches for xsave/xsaveopt/xsavec/xsaves. Macro defines for the same. And add the flags to correct CPU names.

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

8 years agoRemove unnecessary braces in single-line 'if'.
Douglas Katzman [Thu, 15 Oct 2015 04:10:40 +0000 (04:10 +0000)]
Remove unnecessary braces in single-line 'if'.

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

8 years ago[X86] Use C+11 non-static data member initialization to initialize all the X86 featur...
Craig Topper [Wed, 14 Oct 2015 23:47:57 +0000 (23:47 +0000)]
[X86] Use C+11 non-static data member initialization to initialize all the X86 feature controls. NFC

This simplifies the constructor initialization list and makes it less likely a feature flag will be forgotten there.

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

8 years agoSample profiles - Update text profile documentation.
Diego Novillo [Wed, 14 Oct 2015 18:37:39 +0000 (18:37 +0000)]
Sample profiles - Update text profile documentation.

There's been some changes to the text encoding for sample profiles. This
updates the documentation and an example.

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

8 years agoIntrin.h: implement __emul and __emulu
Hans Wennborg [Wed, 14 Oct 2015 16:24:28 +0000 (16:24 +0000)]
Intrin.h: implement __emul and __emulu

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

8 years agoTweak a -g related test for the PS4
Filipe Cabecinhas [Wed, 14 Oct 2015 14:45:36 +0000 (14:45 +0000)]
Tweak a -g related test for the PS4

Make sure we're matching what we want:
 - Always have -generate-arange-section (independent of -g)
 - Emit a -dwarf-version=... when -g is there.

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

8 years agoBring back r250262: PS4 toolchain
Filipe Cabecinhas [Wed, 14 Oct 2015 12:25:43 +0000 (12:25 +0000)]
Bring back r250262: PS4 toolchain

There was a minor problem with a test. Sorry for the noise yesterday.

This patch adds missing pieces to clang, including the PS4 toolchain
definition, added warnings, PS4 defaults, and Driver changes needed for
our compiler.

A patch by Filipe Cabecinhas, Pierre Gousseau and Katya Romanova!

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

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

8 years ago[CMake] Add LLVM_VERSION_PATCH to the -current_version flag for libclang.
Chris Bieneman [Wed, 14 Oct 2015 07:50:47 +0000 (07:50 +0000)]
[CMake] Add LLVM_VERSION_PATCH to the -current_version flag for libclang.

This is to match autoconf where LLVM_SUBMIT_SUBVERSION is usually set to ${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}.

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

8 years agoRevert-to-green r250262 (PS4 toolchain patch)
Sean Silva [Wed, 14 Oct 2015 06:45:07 +0000 (06:45 +0000)]
Revert-to-green r250262 (PS4 toolchain patch)

It is breaking llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast
e.g. http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/1362

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

8 years agoCanonicalize some of the x86 builtin tests and either remove or comment
Eric Christopher [Wed, 14 Oct 2015 05:40:21 +0000 (05:40 +0000)]
Canonicalize some of the x86 builtin tests and either remove or comment
about optimization options.

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

8 years agoRemove the optimization option from this test as it is unnecessary
Eric Christopher [Wed, 14 Oct 2015 05:40:11 +0000 (05:40 +0000)]
Remove the optimization option from this test as it is unnecessary
and front end tests should avoid this if possible.

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

8 years ago[MSVC] Fix for http://llvm.org/PR24132: __declspec(property): double invocations...
Alexey Bataev [Wed, 14 Oct 2015 04:05:42 +0000 (04:05 +0000)]
[MSVC] Fix for http://llvm.org/PR24132: __declspec(property): double invocations of foo() when compiling foo()->propertyName
Removes extra codegen for base expression of MS property call
Differential Revision: http://reviews.llvm.org/D13375

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

8 years agoI took care of the build problem in the commit 250252.
Ekaterina Romanova [Wed, 14 Oct 2015 01:09:02 +0000 (01:09 +0000)]
I took care of the build problem in the commit 250252.
Resubmitting the patch.

This patch adds missing pieces to clang, including the PS4 toolchain
definition, added warnings, PS4 defaults, and Driver changes needed for
our compiler.

A patch by Filipe Cabecinhas, Pierre Gousseau and Katya Romanova!

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

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

8 years agoreverting my patch, cause build problems
Ekaterina Romanova [Wed, 14 Oct 2015 00:03:20 +0000 (00:03 +0000)]
reverting my patch, cause build problems

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

8 years agoThis patch adds missing pieces to clang, including the PS4 toolchain
Ekaterina Romanova [Tue, 13 Oct 2015 23:40:02 +0000 (23:40 +0000)]
This patch adds missing pieces to clang, including the PS4 toolchain
definition, added warnings, PS4 defaults, and Driver changes needed for
our compiler.

A patch by Filipe Cabecinhas, Pierre Gousseau and Katya Romanova!

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

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

8 years ago[Sema/objc] When checking for unimplemented methods treat methods from class extensio...
Argyrios Kyrtzidis [Tue, 13 Oct 2015 23:27:34 +0000 (23:27 +0000)]
[Sema/objc] When checking for unimplemented methods treat methods from class extensions as continuation of the class interface.

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

8 years ago[CMake]Getting rid of references to LLVM_SUBMIT_VERSION and LLVM_SUBMIT_SUBVERSION...
Chris Bieneman [Tue, 13 Oct 2015 23:03:54 +0000 (23:03 +0000)]
[CMake]Getting rid of references to LLVM_SUBMIT_VERSION and LLVM_SUBMIT_SUBVERSION in favor of LLVM_VERSION_MAJOR and LLVM_VERSION_MINOR.

LLVM_SUBMIT_VERSION and LLVM_SUBMIT_SUBVERSION are commonly used variable names in the autoconf build system. They seem to have leeched into clang's CMake in a few places, and should just be replaced by the LLVM_VERSION_* variables where appropriate.

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

8 years ago[analyzer] Don’t invalidate CXXThis when conservatively evaluating const methods...
Devin Coughlin [Tue, 13 Oct 2015 22:20:52 +0000 (22:20 +0000)]
[analyzer] Don’t invalidate CXXThis when conservatively evaluating const methods (PR 21606)

Prevent invalidation of `this' when a method is const; fixing PR 21606.

A patch by Sean Eveson!

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

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

8 years agoMove the adc-builtins test to the pattern of the other builtins
Eric Christopher [Tue, 13 Oct 2015 18:40:21 +0000 (18:40 +0000)]
Move the adc-builtins test to the pattern of the other builtins
tests by predefining _MM_MALLOC_H rather than use -ffreestanding.

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

8 years agoAdd subtarget feature support for 3dnowa to the 3dnowa intrinsics.
Eric Christopher [Tue, 13 Oct 2015 18:40:17 +0000 (18:40 +0000)]
Add subtarget feature support for 3dnowa to the 3dnowa intrinsics.

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

8 years ago[CMake] When building clang as an external project we should pass through all variabl...
Chris Bieneman [Tue, 13 Oct 2015 18:17:30 +0000 (18:17 +0000)]
[CMake] When building clang as an external project we should pass through all variables that start with COMPILER_RT

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

8 years agoAlways pass a -dwarf-version argument to integrated as.
Douglas Katzman [Tue, 13 Oct 2015 16:22:51 +0000 (16:22 +0000)]
Always pass a -dwarf-version argument to integrated as.

This removes the default of 3 hidden in the assembler previously.

Fixes breakage caused by r249655, reported by vsukharev.

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

8 years ago[Driver] Use the parent_path of the clang executable as the default InstalledDir
Benjamin Kramer [Tue, 13 Oct 2015 15:19:32 +0000 (15:19 +0000)]
[Driver] Use the parent_path of the clang executable as the default InstalledDir

This is what most people want anyways. Clang -cc1's main() will override
this but for other tools this is the most sensible default and avoids
some work.

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

8 years ago[X86] Add XSAVE intrinsic family
Amjad Aboud [Tue, 13 Oct 2015 12:29:35 +0000 (12:29 +0000)]
[X86] Add XSAVE intrinsic family

Add intrinsics for the
  XSAVE instructions (XSAVE/XSAVE64/XRSTOR/XRSTOR64)
  XSAVEOPT instructions (XSAVEOPT/XSAVEOPT64)
  XSAVEC instructions (XSAVEC/XSAVEC64)
  XSAVES instructions (XSAVES/XSAVES64/XRSTORS/XRSTORS64)

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

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

8 years agoRemove unused diagnostic. NFC.
Benjamin Kramer [Tue, 13 Oct 2015 10:10:03 +0000 (10:10 +0000)]
Remove unused diagnostic. NFC.

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

8 years ago[X86] LLVM now prints XOP immediates as unsigned after r250147. Fix expected check...
Craig Topper [Tue, 13 Oct 2015 05:15:17 +0000 (05:15 +0000)]
[X86] LLVM now prints XOP immediates as unsigned after r250147. Fix expected check string accordingly.

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

8 years ago[modules] Improve error message on failed module load due to a missing file to
Richard Smith [Tue, 13 Oct 2015 01:26:26 +0000 (01:26 +0000)]
[modules] Improve error message on failed module load due to a missing file to
say which module file referenced the missing file.

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

8 years ago[modules] Allow the error on importing a C++ module within an extern "C"
Richard Smith [Tue, 13 Oct 2015 00:39:40 +0000 (00:39 +0000)]
[modules] Allow the error on importing a C++ module within an extern "C"
context (but otherwise at the top level) to be disabled, to support use of C++
standard library implementations that (legitimately) mark their <blah.h>
headers as being C++ headers from C libraries that wrap things in 'extern "C"'
a bit too enthusiastically.

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

8 years agoTweak clang/test/CodeGen/debug-prefix-map.c to appease win32 hosts.
NAKAMURA Takumi [Tue, 13 Oct 2015 00:38:06 +0000 (00:38 +0000)]
Tweak clang/test/CodeGen/debug-prefix-map.c to appease win32 hosts.

  !1 = !DIFile(filename: "/var/empty\5C<stdin>", directory: "E:\5Cllvm\5Cbuild\5Ccmake-ninja\5Ctools\5Cclang\5Ctest\5CCodeGen")

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

8 years ago[modules] Fix merging of __va_list_tag's implicit special member functions.
Richard Smith [Tue, 13 Oct 2015 00:23:25 +0000 (00:23 +0000)]
[modules] Fix merging of __va_list_tag's implicit special member functions.

We model predefined declarations as not being from AST files, but in most ways
they act as if they come from some implicit prebuilt module file imported
before all others. Therefore, if we see an update to the predefined 'struct
__va_list_tag' declaration (and we've already loaded any modules), it needs a
corresponding update record, even though it didn't technically come from an AST
file.

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

8 years ago[safestack] Driver link test for safestack on android.
Evgeniy Stepanov [Mon, 12 Oct 2015 23:50:19 +0000 (23:50 +0000)]
[safestack] Driver link test for safestack on android.

Safestack runtime should never be linked on Android targets because
it is implemented directly in libc. This is already the case, but
mostly by chance (collectSanitizerRuntimes would only link shared
sanitizer runtimes, and safestack has only a static one). Protect
this behavior with a test.

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

8 years agoAdd decayedType and hasDecayedType AST matchers
Matthias Gehre [Mon, 12 Oct 2015 21:46:07 +0000 (21:46 +0000)]
Add decayedType and hasDecayedType AST matchers

Summary: Add decayedType and hasDecayedType AST matchers

Reviewers: klimek

Subscribers: klimek, cfe-commits

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

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

8 years agotest: change argument
Saleem Abdulrasool [Mon, 12 Oct 2015 21:19:30 +0000 (21:19 +0000)]
test: change argument

This failed on AArch64 due to the type mismatch using int instead of
__builtin_va_list.

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

8 years agotest: relax path matching for windows
Saleem Abdulrasool [Mon, 12 Oct 2015 21:19:27 +0000 (21:19 +0000)]
test: relax path matching for windows

The test failed on Windows due to use of \ as a path separator rather than /.

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

8 years agoAdd warning flags for #include_next and some nearby warnings.
Richard Smith [Mon, 12 Oct 2015 21:05:54 +0000 (21:05 +0000)]
Add warning flags for #include_next and some nearby warnings.

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

8 years agoParse and ignore #pragma runtime_checks in MS extensions mode (PR25138)
Hans Wennborg [Mon, 12 Oct 2015 20:47:58 +0000 (20:47 +0000)]
Parse and ignore #pragma runtime_checks in MS extensions mode (PR25138)

We already silently ignore the /RTC, which controls the same functionality.

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

8 years agoSupport Debug Info path remapping
Saleem Abdulrasool [Mon, 12 Oct 2015 20:21:08 +0000 (20:21 +0000)]
Support Debug Info path remapping

Add support for the `-fdebug-prefix-map=` option as in GCC.  The syntax is
`-fdebug-prefix-map=OLD=NEW`.  When compiling files from a path beginning with
OLD, change the debug info to indicate the path as start with NEW.  This is
particularly helpful if you are preprocessing in one path and compiling in
another (e.g. for a build cluster with distcc).

Note that the linearity of the implementation is not as terrible as it may seem.
This is normally done once per file with an expectation that the map will be
small (1-2) entries, making this roughly linear in the number of input paths.

Addresses PR24619.

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

8 years ago[Sema] Make `&function_with_enable_if_attrs` an error
George Burgess IV [Mon, 12 Oct 2015 19:57:04 +0000 (19:57 +0000)]
[Sema] Make `&function_with_enable_if_attrs` an error

This fixes a bug where one can take the address of a conditionally
enabled function to drop its enable_if guards. For example:

  int foo(int a) __attribute__((enable_if(a > 0, "")));
  int (*p)(int) = &foo;
  int result = p(-1); // compilation succeeds; calls foo(-1)

Overloading logic has been updated to reflect this change, as well.

Functions with enable_if attributes that are always true are still
allowed to have their address taken.

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

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

8 years ago[Sema] Don't emit multiple diags for one error
George Burgess IV [Mon, 12 Oct 2015 18:40:58 +0000 (18:40 +0000)]
[Sema] Don't emit multiple diags for one error

Fixed a bug where we'd emit multiple diagnostics if there was a problem
taking the address of an overloaded template function.

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

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

8 years ago[CMake] Bug 14109 - CMake build for compiler-rt should use just-built clang
Chris Bieneman [Mon, 12 Oct 2015 16:34:23 +0000 (16:34 +0000)]
[CMake] Bug 14109 - CMake build for compiler-rt should use just-built clang

Summary:
Many small improvements to LLVM_BUILD_EXTERNAL_COMPILER_RT.

* Works correctly with Ninja by working around CMake Bug 14771 (https://cmake.org/Bug/view.php?id=14771)
* Has install-compiler-rt target, and installs as part of the default install target
* Sets the install paths properly so that it matches the non-standalone build
* Only generate the test targets if(LLVM_INCLUDE_TESTS)

Reviewers: samsonov, Bigcheese

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

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

8 years ago[VFS] Let the user decide if they want path normalization.
Benjamin Kramer [Mon, 12 Oct 2015 16:16:39 +0000 (16:16 +0000)]
[VFS] Let the user decide if they want path normalization.

This is a more principled version of what I did earlier. Path
normalization is generally a good thing, but may break users in strange
environments, e. g. using lots of symlinks. Let the user choose and
default it to on.

This also changes adding a duplicated file into returning an error if
the file contents are different instead of an assertion failure.

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

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

8 years ago[Driver] Remove `else` after `return`
Simon Atanasyan [Mon, 12 Oct 2015 14:32:57 +0000 (14:32 +0000)]
[Driver] Remove `else` after `return`

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

8 years ago[VFS] Unbreak test.
Benjamin Kramer [Mon, 12 Oct 2015 13:39:33 +0000 (13:39 +0000)]
[VFS] Unbreak test.

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

8 years ago[VFS] Don't try to be heroic with '.' in paths.
Benjamin Kramer [Mon, 12 Oct 2015 13:30:38 +0000 (13:30 +0000)]
[VFS] Don't try to be heroic with '.' in paths.

Actually the only special path we have to handle is ./foo, the rest is
tricky to get right so do the same thing as the existing YAML vfs here.

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

8 years ago[VFS] remove handling of '..' for now.
Benjamin Kramer [Mon, 12 Oct 2015 09:22:07 +0000 (09:22 +0000)]
[VFS] remove handling of '..' for now.

This can fail badly if we're overlaying a real file system and there are
symlinks there. Just keep the path as-is for now.

This essentially reverts r249830.

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

8 years ago[ATTR] Automatic line feed after pragma-like attribute.
Alexey Bataev [Mon, 12 Oct 2015 06:59:48 +0000 (06:59 +0000)]
[ATTR] Automatic line feed after pragma-like attribute.
Automatically insert line feed after pretty printing of all pragma-like attributes + fix printing of pragma-like pragmas on declarations.
Differential Revision: http://reviews.llvm.org/D13546

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

8 years agoclang-format: Fixed typecast getting put on a separate line from the
Daniel Jasper [Mon, 12 Oct 2015 03:19:07 +0000 (03:19 +0000)]
clang-format: Fixed typecast getting put on a separate line from the
key in Obj-C dictionary literals

This fixes: https://llvm.org/PR22647

Patch by Kent Sutherland. Thank you.

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

8 years agoclang-format: [JS] handle character classes in regexes.
Daniel Jasper [Mon, 12 Oct 2015 03:13:48 +0000 (03:13 +0000)]
clang-format: [JS] handle character classes in regexes.

Slashes in regular expressions do not need to be escaped and do not
terminate the regular expression even without a preceding backslash.

Patch by Martin Probst. Thank you.

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

8 years agobindings: add new C++ function attribute accessors
Saleem Abdulrasool [Mon, 12 Oct 2015 03:10:20 +0000 (03:10 +0000)]
bindings: add new C++ function attribute accessors

Add methods to index Cursor to see if a cxx method is pure_virtual,
virtual or const methods.

Patch by Jonathan B Coe!

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

8 years agoFix warning caused by r249995
George Burgess IV [Sun, 11 Oct 2015 20:37:14 +0000 (20:37 +0000)]
Fix warning caused by r249995

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

8 years ago[Sema] Allow C conversions in C overload logic
George Burgess IV [Sun, 11 Oct 2015 20:13:20 +0000 (20:13 +0000)]
[Sema] Allow C conversions in C overload logic

C allows for some implicit conversions that C++ does not, e.g. void* ->
char*. This patch teaches clang that these conversions are okay when
dealing with overloads in C.

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

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

8 years agoKeep the IfStmt node even if the condition is invalid
Olivier Goffart [Sun, 11 Oct 2015 17:27:29 +0000 (17:27 +0000)]
Keep the IfStmt node even if the condition is invalid

This is important to keep the information in IDE or other tools
even if the code contains a few errors

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

8 years ago[CMake] Always generate and install cmake config files on CMake>=3.0.
NAKAMURA Takumi [Sat, 10 Oct 2015 02:37:30 +0000 (02:37 +0000)]
[CMake] Always generate and install cmake config files on CMake>=3.0.

Currently, cmake config files are only generated and installed when CLANG_BUILD_STANDALONE set, which means config file will not be generated or installed when clang is built with llvm. This change removes that restriction.

Thanks to Don Hinton <hintonda@gmail.com>

http://reviews.llvm.org/D13453

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

8 years ago[Concepts] Fixing Concepts TS directory structure; NFC
Nathan Wilson [Sat, 10 Oct 2015 02:17:39 +0000 (02:17 +0000)]
[Concepts] Fixing Concepts TS directory structure; NFC

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

8 years agoFix inference of _Nullable for weak Objective-C properties.
Douglas Gregor [Fri, 9 Oct 2015 20:36:17 +0000 (20:36 +0000)]
Fix inference of _Nullable for weak Objective-C properties.

The inference of _Nullable for weak Objective-C properties was broken
in several ways:

* It was back-patching the type information very late in the process
  of checking the attributes for an Objective-C property, which is
  just wrong.
* It was using ad hoc checks to try to suppress the warning about
  missing nullability specifiers (-Wnullability-completeness), which
  didn't actual work in all cases (rdar://problem/22985457)
* It was inferring _Nullable even outside of assumes-nonnull regions,
  which is wrong.

Putting the inference of _Nullable for weak Objective-C properties in
the same place as all of the other inference logic fixes all of these
ills.

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

8 years agoAdd a fixme to handleTargetFeatures.
Eric Christopher [Fri, 9 Oct 2015 20:30:48 +0000 (20:30 +0000)]
Add a fixme to handleTargetFeatures.

The goal of wanting this to avoid munging the feature list is so
that it can be used for various targets as a way of both adding
and verifying the features that are going to be output into the
IR.

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

8 years ago[Myriad]: put libstdc++ and libc in the right order
Douglas Katzman [Fri, 9 Oct 2015 20:26:20 +0000 (20:26 +0000)]
[Myriad]: put libstdc++ and libc in the right order

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

8 years agoFix whitespace, 80-column violations, embedded tabs for the
Eric Christopher [Fri, 9 Oct 2015 18:39:59 +0000 (18:39 +0000)]
Fix whitespace, 80-column violations, embedded tabs for the
TargetInfo class.

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

8 years agoconstify the feature vector going into initFeatureMap as it shouldn't
Eric Christopher [Fri, 9 Oct 2015 18:39:55 +0000 (18:39 +0000)]
constify the feature vector going into initFeatureMap as it shouldn't
change the set of features.

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

8 years ago[CMake] Fixing LTO library path passed into bootstrap builds.
Chris Bieneman [Fri, 9 Oct 2015 17:45:44 +0000 (17:45 +0000)]
[CMake] Fixing LTO library path passed into bootstrap builds.

This just fixes a small error in constructing the path to the LTO library.

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

8 years agoAnalysis: Make CFG::graph_iterator dereference to non-const
Duncan P. N. Exon Smith [Fri, 9 Oct 2015 16:50:55 +0000 (16:50 +0000)]
Analysis: Make CFG::graph_iterator dereference to non-const

Since the original commit in r145858, we've had `CFG::graph_iterator`
and `CFG::const_graph_iterator`, and both have derefenced to a
`const`-ified `value_type`.  The former has an implicit conversion to
non-`const`, which is how this worked at all until r249782 started using
the dereference operator (partially reverted in r249783).

This fixes the non-const iterator to be non-const (sometimes
const-iterators are intentional, but with a separate const-ified class
(and a non-const implicit conversion leak) that's not likely to be the
case here).

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

8 years agoFix VFS GCC unittest on Windows
Reid Kleckner [Fri, 9 Oct 2015 16:48:52 +0000 (16:48 +0000)]
Fix VFS GCC unittest on Windows

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

8 years agoAmending r249721 to properly handle pathological attribute-related names like __...
Aaron Ballman [Fri, 9 Oct 2015 13:53:24 +0000 (13:53 +0000)]
Amending r249721 to properly handle pathological attribute-related names like __ and ____.

Patch by Adrian Zgorzalek!

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

8 years ago[VFS] Rename RedirectingFS internals to avoid collisions with public clang classes
Benjamin Kramer [Fri, 9 Oct 2015 13:28:13 +0000 (13:28 +0000)]
[VFS] Rename RedirectingFS internals to avoid collisions with public clang classes

Hopefully fixes the MSVC build. NFC intended.

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

8 years ago[VFS] Wire up driver VFS through tooling.
Benjamin Kramer [Fri, 9 Oct 2015 13:03:25 +0000 (13:03 +0000)]
[VFS] Wire up driver VFS through tooling.

Sadly I don't currently have a way to tests this as the driver is always
initialized with the default triple and finding system headers is system
specific.

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

8 years ago[VFS] Just normalize away .. and . in paths for in-memory file systems.
Benjamin Kramer [Fri, 9 Oct 2015 13:03:22 +0000 (13:03 +0000)]
[VFS] Just normalize away .. and . in paths for in-memory file systems.

This simplifies the code and gets us support for .. for free.

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

8 years ago[VFS] Wire up multilib toolchain code to the VFS.
Benjamin Kramer [Fri, 9 Oct 2015 13:03:18 +0000 (13:03 +0000)]
[VFS] Wire up multilib toolchain code to the VFS.

This lets a VFSified driver actually validate the GCC paths.

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

8 years ago[VFS] Port tooling to use the in-memory file system.
Benjamin Kramer [Fri, 9 Oct 2015 09:54:37 +0000 (09:54 +0000)]
[VFS] Port tooling to use the in-memory file system.

This means file remappings can now be managed by ClangTool (or a
ToolInvocation user) instead of by ToolInvocation itself. The
ToolInvocation remapping is still in place so users can migrate.

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

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

8 years ago[Sema] Add "Ty" suffix to QualType variables for clarity (NFC)
Vedant Kumar [Fri, 9 Oct 2015 01:47:26 +0000 (01:47 +0000)]
[Sema] Add "Ty" suffix to QualType variables for clarity (NFC)

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

8 years agoFix a few typos in the required feature set for some of the x86
Eric Christopher [Fri, 9 Oct 2015 00:35:30 +0000 (00:35 +0000)]
Fix a few typos in the required feature set for some of the x86
builtins:

avx512vd -> avx512vl
rdrand -> rdrnd
avx512ff -> avx512f

no functional change.

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

8 years agoSkip NonNull sema checks in unevaluated contexts.
Eric Fiselier [Fri, 9 Oct 2015 00:17:57 +0000 (00:17 +0000)]
Skip NonNull sema checks in unevaluated contexts.

Summary:
Currently when a function annotated with __attribute__((nonnull)) is called in an unevaluated context with a null argument a -Wnonnull warning is emitted.
This warning seems like a false positive unless the call expression is potentially evaluated. Change this behavior so that the non-null warnings use DiagRuntimeBehavior so they wont emit when they won't be evaluated.

Reviewers: majnemer, rsmith

Subscribers: mclow.lists, cfe-commits

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

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

8 years agoExpose -f[no]ms-{compatibility,extensions} in clang-cl (PR25114)
Hans Wennborg [Thu, 8 Oct 2015 23:13:28 +0000 (23:13 +0000)]
Expose -f[no]ms-{compatibility,extensions} in clang-cl (PR25114)

These are enabled by default in clang-cl, because the whole idea is that
it should work like cl.exe, but I suppose it can make sense to disable
them if someone wants to compile code in a more strict mode.

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

8 years agoUse Triple.isAndroid() where possible.
Evgeniy Stepanov [Thu, 8 Oct 2015 21:21:44 +0000 (21:21 +0000)]
Use Triple.isAndroid() where possible.

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

8 years ago[WinEH] Push cleanupendpad scopes around exceptional cleanups
Reid Kleckner [Thu, 8 Oct 2015 21:14:56 +0000 (21:14 +0000)]
[WinEH] Push cleanupendpad scopes around exceptional cleanups

We were only doing this for SEH as a special case. Generalize it to all
cleanups.

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

8 years ago[CodeGen] [CodeGen] Attach function attributes to functions created in
Akira Hatanaka [Thu, 8 Oct 2015 20:26:34 +0000 (20:26 +0000)]
[CodeGen] [CodeGen] Attach function attributes to functions created in
CGBlocks.cpp.

This commit fixes a bug in clang's code-gen where it creates the
following functions but doesn't attach function attributes to them:

__copy_helper_block_
__destroy_helper_block_
__Block_byref_object_copy_
__Block_byref_object_dispose_

rdar://problem/20828324

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

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

8 years agoHandle sse turning on mmx, but no -mmx not turning off SSE.
Eric Christopher [Thu, 8 Oct 2015 20:10:18 +0000 (20:10 +0000)]
Handle sse turning on mmx, but no -mmx not turning off SSE.

Rationale :

// sse3
__m128d test_mm_addsub_pd(__m128d A, __m128d B) {
  return _mm_addsub_pd(A, B);
}

// mmx
void shift(__m64 a, __m64 b, int c) {
  _mm_slli_pi16(a, c);
  _mm_slli_pi32(a, c);
  _mm_slli_si64(a, c);
  _mm_srli_pi16(a, c);
  _mm_srli_pi32(a, c);
  _mm_srli_si64(a, c);
  _mm_srai_pi16(a, c);
  _mm_srai_pi32(a, c);
}

clang -msse3 -mno-mmx file.c -c

For this code we should be able to explicitly turn off MMX
without affecting the compilation of the SSE3 function and then
diagnose and error on compiling the MMX function.

This is a preparatory patch to the actual diagnosis code which is
coming in a future patch. This sets us up to have the correct information
where we need it and verifies that it's being emitted for the backend
to handle.

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

8 years agoMigrate most feature map inclusion to initFeatureMap for the x86 target so
Eric Christopher [Thu, 8 Oct 2015 20:10:14 +0000 (20:10 +0000)]
Migrate most feature map inclusion to initFeatureMap for the x86 target so
that we can build up an accurate set of features rather than relying on
TargetInfo initialization via handleTargetFeatures to munge the list
of features.

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

8 years ago[CodeGen] Check if the Decl pointer passed is null, and if so, return
Akira Hatanaka [Thu, 8 Oct 2015 19:30:57 +0000 (19:30 +0000)]
[CodeGen] Check if the Decl pointer passed is null, and if so, return
early.

This is needed in a patch I plan to commit later, in which a null Decl
pointer is passed to SetLLVMFunctionAttributesForDefinition.

Relevant discussion is in http://reviews.llvm.org/D13525.

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

8 years agoWhen mapping no_sanitize_* attributes to no_sanitize attributes, handle GNU-style...
Aaron Ballman [Thu, 8 Oct 2015 19:24:08 +0000 (19:24 +0000)]
When mapping no_sanitize_* attributes to no_sanitize attributes, handle GNU-style formatting that involves prefix and suffix underscores. Cleans up other usages of similar functionality.

Patch by Adrian Zgorzalek!

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

8 years ago[clang-cl] Make /EHs turn on C++ EH once again
Reid Kleckner [Thu, 8 Oct 2015 17:29:07 +0000 (17:29 +0000)]
[clang-cl] Make /EHs turn on C++ EH once again

C++ exceptions are still off by default, which is similar to how C++
cleanups are off by default in MSVC.

If you use clang instead of clang-cl, exceptions are also still off by
default. In the future, when C++ EH is proven to be stable, we may flip
the default for that driver to be consistent with other platforms.

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

8 years agoSimplify DefaultCPU in ARMTargetInfo
Renato Golin [Thu, 8 Oct 2015 16:43:26 +0000 (16:43 +0000)]
Simplify DefaultCPU in ARMTargetInfo

Simplifying the convoluted CPU handling in ARMTargetInfo.

The default base CPU on ARM is ARM7TDMI, arch ARMv4T, and
ARMTargetInfo had a different one. This wasn't visible from
Clang because the driver selects the defaults and sets the
Arch/CPU features directly, but the constructor depended
on the CPU, which was never used.

This patch corrects the mistake and greatly simplifies
how CPU is dealt with (essentially by removing the duplicated
DefaultCPU field).

Tests updated.

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