]> granicus.if.org Git - clang/log
clang
8 years agoModules: set SystemHeader to true if we are building a system module.
Manman Ren [Tue, 17 May 2016 02:15:12 +0000 (02:15 +0000)]
Modules: set SystemHeader to true if we are building a system module.

If we are processing a #include from a module build, we should treat it
as a system header if we're building a system module. Passing an optional
flag to HeaderSearch::LookupFile.

Before this, the testing case will crash when accessing a freed FileEntry.

rdar://26214027

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

8 years agoLess broken fix for buildbot breakage.
Richard Smith [Mon, 16 May 2016 23:07:58 +0000 (23:07 +0000)]
Less broken fix for buildbot breakage.

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

8 years agoTry to make the buildbots green again: avoid the need for class Attr to be
Richard Smith [Mon, 16 May 2016 23:03:40 +0000 (23:03 +0000)]
Try to make the buildbots green again: avoid the need for class Attr to be
complete for users of AttrVec.

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

8 years agoDoxygen comments for avxintrin.h.
Ekaterina Romanova [Mon, 16 May 2016 22:54:45 +0000 (22:54 +0000)]
Doxygen comments for avxintrin.h.

Added doxygen comments to avxintrin.h's intrinsics. As of now, only around 50% of the intrinsics in this file are documented here. The patches for the other half will be sent out later.

Updated bmiintrin.h to fix an incorrect section name.
Updated f16cintrin.h to fix incorect parameter names.

The doxygen comments are automatically generated based on Sony's intrinsics document.

I got an OK from Eric Christopher to commit doxygen comments without prior code
review upstream.

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

8 years agoSwitch from SmallVector to TinyPtrVector for the list of attributes on a declaration...
Richard Smith [Mon, 16 May 2016 22:53:19 +0000 (22:53 +0000)]
Switch from SmallVector to TinyPtrVector for the list of attributes on a declaration. This removes a memory allocation for the common case where the declaration has only one attribute.

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

8 years agoAvoid O(n^2) string analysis when handling GNU __asm__ statements.
Richard Smith [Mon, 16 May 2016 22:52:23 +0000 (22:52 +0000)]
Avoid O(n^2) string analysis when handling GNU __asm__ statements.

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

8 years ago[PS4] Tighten up a test (noticed in passing)
Paul Robinson [Mon, 16 May 2016 21:25:15 +0000 (21:25 +0000)]
[PS4] Tighten up a test (noticed in passing)

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

8 years agoRevert "Reapply^2 "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC""
Vedant Kumar [Mon, 16 May 2016 21:04:19 +0000 (21:04 +0000)]
Revert "Reapply^2 "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC""

This reverts commit r269695. The llvm commit does not pass the MSVC bot.

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

8 years agoReapply^2 "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"
Vedant Kumar [Mon, 16 May 2016 20:50:13 +0000 (20:50 +0000)]
Reapply^2 "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"

Sync up with "(llvm) Use Error in InstrProf and Coverage".

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

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

8 years agoAdded support to the ASTImporter for C++ constructor initializers.
Sean Callanan [Mon, 16 May 2016 20:48:03 +0000 (20:48 +0000)]
Added support to the ASTImporter for C++ constructor initializers.
Also added named casts and propagation of "implicit" to fix the LLDB testsuite.
This is a fixed commit of r269546, which was reverted by r269575.

Thanks to Aleksei Sidorin for review and advice.

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

8 years ago[Lex] inferModuleFromLocation should do no work if there are no modules
David Majnemer [Mon, 16 May 2016 20:30:03 +0000 (20:30 +0000)]
[Lex] inferModuleFromLocation should do no work if there are no modules

getModuleContainingLocation ends up on the hot-path for typical C code
which can lead to calls to getFileIDSlow.

To speed this up, short circuit inferModuleFromLocation when there
aren't any modules, implicit or otherwise.

This shaves 4-5% build time when building the linux kernel.

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

8 years ago[Clang][AVX512] completing missing intrinsics for [vpabs] instruction set
Michael Zuckerman [Mon, 16 May 2016 18:57:24 +0000 (18:57 +0000)]
[Clang][AVX512] completing missing intrinsics for [vpabs] instruction set

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

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

8 years agoChange embed-bitcode linkage type
Steven Wu [Mon, 16 May 2016 18:54:58 +0000 (18:54 +0000)]
Change embed-bitcode linkage type

Embedded bitcode should have private linkage instead of appending or external.
Otherwise, it will cause link failure due to duplicated symbols.
Also add llvm.embedded.module and llvm.cmdline to llvm.compiler.used so they
don't get optimized out.

rdar://problem/21555860

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

8 years ago[ms] Reintroduce feature guards in intrinsic headers in Microsoft mode
Nico Weber [Mon, 16 May 2016 18:14:07 +0000 (18:14 +0000)]
[ms] Reintroduce feature guards in intrinsic headers in Microsoft mode

Visual Studio's C++ standard library headers include intrin.h, so the intrinsic
headers get included a lot more often in Microsoft mode than elsewhere. The
AVX512 intrinsics are a lot of code (0.7 MB, causing 30% compile time overhead
for small programs including e.g. <string> and 6% compile time overhead for
larger projects like e.g. v8). Since multiversioning can't be relied on in
Microsoft mode (cl.exe doesn't support it), having faster compiles seems like
the much better tradeoff until we have a better intrinsic story going forward
(which we'll need for e.g. PR19898).

Actually using intrinsics on Windows already requires the right /arch:
settings, so this patch should have no big behavior change.

See also thread "The intrinsics headers (especially avx512) are too big. What
to do about it?" on cfe-dev.

http://reviews.llvm.org/D20291

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

8 years ago[PS4] Change the names of some "environmental" things to what our
Paul Robinson [Mon, 16 May 2016 17:22:25 +0000 (17:22 +0000)]
[PS4] Change the names of some "environmental" things to what our
licensees actually see in the toolchain we deliver to them.  This will
reduce the set of local patches we have to maintain.  The triple is
not changing.  (The term ORBIS is an internal code name for PS4.)

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

8 years ago[OpenCL] Add supported OpenCL extensions to target info.
Yaxun Liu [Mon, 16 May 2016 17:06:34 +0000 (17:06 +0000)]
[OpenCL] Add supported OpenCL extensions to target info.

Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions and optional core features in command line.

Re-commit after fixing build error due to missing override attribute.

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

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

8 years agoAdd the hasDynamicExceptionSpec() AST matcher to match function declarations that...
Aaron Ballman [Mon, 16 May 2016 16:49:01 +0000 (16:49 +0000)]
Add the hasDynamicExceptionSpec() AST matcher to match function declarations that have a dynamic exception specification.

Patch by Don Hinton.

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

8 years ago[Modules] Use vfs for (recursive) directory iteration
Bruno Cardoso Lopes [Mon, 16 May 2016 16:46:01 +0000 (16:46 +0000)]
[Modules] Use vfs for (recursive) directory iteration

Clang performs directory walk while searching headers inside modules by
using the ::sys::fs instead of ::vfs. This prevents any code that uses
the VFS (e.g, reproducer scripts) to actually find such headers, since
the VFS will never be searched for those.

Change these places to use vfs::recursive_directory_iterator and
vfs::directory_iterator instead.

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

rdar://problem/25880368

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

8 years ago[mips] Add test for the dynamic linker when using the mips64el-fedora-linux triple.
Vasileios Kalintiris [Mon, 16 May 2016 11:53:51 +0000 (11:53 +0000)]
[mips] Add test for the dynamic linker when using the mips64el-fedora-linux triple.

We should use the musl linker only when there's no environment specified and
the vendor is MTI. The new test verifies this behaviour and is a follow-up to
the r269411 commit that added the vendor field check.

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

8 years ago[Clang][AVX512] completing missing intrinsics [vsqrt|vrsqrt|vrcp14 ].
Michael Zuckerman [Mon, 16 May 2016 11:42:01 +0000 (11:42 +0000)]
[Clang][AVX512] completing missing intrinsics [vsqrt|vrsqrt|vrcp14 ].

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

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

8 years ago[X86] Add typecasts to remove most assumptions about what __m128i/__m256i is defined...
Craig Topper [Mon, 16 May 2016 06:38:42 +0000 (06:38 +0000)]
[X86] Add typecasts to remove most assumptions about what __m128i/__m256i is defined as. Add similar typecasts for the fp types as well.

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

8 years ago[AVX512] Add typecasts to some intrinsics to avoid doing operations on the __m512...
Craig Topper [Mon, 16 May 2016 06:38:36 +0000 (06:38 +0000)]
[AVX512] Add typecasts to some intrinsics to avoid doing operations on the __m512/__m512i/__m512d types.

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

8 years agoCodeGen: convert some const char * to StringRef
Saleem Abdulrasool [Mon, 16 May 2016 05:06:49 +0000 (05:06 +0000)]
CodeGen: convert some const char * to StringRef

Convert some use of const char * to StringRef.  NFC.

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

8 years agoMake this SourceLocation getter const LLVM_READONLY like others in the same file.
Nick Lewycky [Mon, 16 May 2016 02:46:07 +0000 (02:46 +0000)]
Make this SourceLocation getter const LLVM_READONLY like others in the same file.

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

8 years agoSimple visualization of expressions
Mike Spertus [Mon, 16 May 2016 01:36:09 +0000 (01:36 +0000)]
Simple visualization of expressions

While more could be done, showing the type is a lot better than what is there now.

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

8 years ago[AVX512] Use correct types in test case.
Craig Topper [Mon, 16 May 2016 01:09:19 +0000 (01:09 +0000)]
[AVX512] Use correct types in test case.

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

8 years ago[X86] Remove bad cast from the 'int' return type of __builtin_ia32_kortestchi to...
Craig Topper [Mon, 16 May 2016 01:09:16 +0000 (01:09 +0000)]
[X86] Remove bad cast from the 'int' return type of __builtin_ia32_kortestchi to '__mask16' before return in an 'int' intrinsic.

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

8 years ago[AVX512] Fix bad typecasts on return value for 512-bit integer byte/word compare...
Craig Topper [Mon, 16 May 2016 00:51:06 +0000 (00:51 +0000)]
[AVX512] Fix bad typecasts on return value for 512-bit integer byte/word compare builtins.

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

8 years ago[X86] Add immediate range checks for many of the builtins.
Craig Topper [Sun, 15 May 2016 22:18:00 +0000 (22:18 +0000)]
[X86] Add immediate range checks for many of the builtins.

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

8 years ago[AVX512] Immediate argument for PALIGNR builtin should be an ICE./
Craig Topper [Sun, 15 May 2016 22:17:57 +0000 (22:17 +0000)]
[AVX512] Immediate argument for PALIGNR builtin should be an ICE./

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

8 years ago[AVX512] Add intrinsics for 512-bit insertf32x8/insertf32x4/inserti32x4.
Craig Topper [Sun, 15 May 2016 21:26:20 +0000 (21:26 +0000)]
[AVX512] Add intrinsics for 512-bit insertf32x8/insertf32x4/inserti32x4.

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

8 years ago[AVX512] Mark some integer builtin arguments that go to immediates in final instructi...
Craig Topper [Sun, 15 May 2016 20:10:06 +0000 (20:10 +0000)]
[AVX512] Mark some integer builtin arguments that go to immediates in final instructions as an ICE.

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

8 years ago[AVX512] Move unary negations to the left side of typecasts to specific vector type...
Craig Topper [Sun, 15 May 2016 20:10:03 +0000 (20:10 +0000)]
[AVX512] Move unary negations to the left side of typecasts to specific vector type. The __m128/__m256/__m512 types should be treated more opaquely and not have any operations performed on them.

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

8 years ago[AVX512] Use the correct mask type in an intrinsic.
Craig Topper [Sun, 15 May 2016 20:10:00 +0000 (20:10 +0000)]
[AVX512] Use the correct mask type in an intrinsic.

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

8 years ago[AVX512] Fix an intrinsic that was passing -2 as a mask instead of -1.
Craig Topper [Sun, 15 May 2016 20:09:58 +0000 (20:09 +0000)]
[AVX512] Fix an intrinsic that was passing -2 as a mask instead of -1.

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

8 years ago[AVX512] Make the permd builtins take a 32-bit immediate to match the software spec.
Craig Topper [Sat, 14 May 2016 21:13:31 +0000 (21:13 +0000)]
[AVX512] Make the permd builtins take a 32-bit immediate to match the software spec.

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

8 years agoRevert r269546 "Added support to the ASTImporter for C++ constructor initializers...
Oleksiy Vyalov [Sat, 14 May 2016 19:07:13 +0000 (19:07 +0000)]
Revert r269546 "Added support to the ASTImporter for C++ constructor initializers." as it breaks TestDataFormatterSynthVal.DataFormatterSynthValueTestCase.test_with_run_command_dwarf test - http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/14699

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

8 years agoWarn when a reference is bound to an empty l-value (dereferenced null pointer).
Nick Lewycky [Sat, 14 May 2016 17:44:14 +0000 (17:44 +0000)]
Warn when a reference is bound to an empty l-value (dereferenced null pointer).

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

8 years ago[AVX512] Immediate for permd builtins should be an ICE.
Craig Topper [Sat, 14 May 2016 15:27:13 +0000 (15:27 +0000)]
[AVX512] Immediate for permd builtins should be an ICE.

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

8 years ago[mips] Enable IAS by default for 32-bit MIPS targets (O32).
Daniel Sanders [Sat, 14 May 2016 12:43:08 +0000 (12:43 +0000)]
[mips] Enable IAS by default for 32-bit MIPS targets (O32).

Summary:
The MIPS IAS can now pass 'ninja check-all', recurse, build a bootable linux
kernel, and pass a variety of LNT testing.

Unfortunately we can't enable it by default for 64-bit targets yet since the N32
ABI is still very buggy and this also means we can't enable it for N64 either
because we can't distinguish between N32 and N64 in the relevant code.

Reviewers: vkalintiris

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D18759
Differential Revision: http://reviews.llvm.org/D18761

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

8 years agoModuleMap.h: Fix a \param. [-Wdocumentation]
NAKAMURA Takumi [Sat, 14 May 2016 12:37:06 +0000 (12:37 +0000)]
ModuleMap.h: Fix a \param. [-Wdocumentation]

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

8 years agoMSVCToolChain.cpp: Make version.dll generic for win32.
NAKAMURA Takumi [Sat, 14 May 2016 08:12:37 +0000 (08:12 +0000)]
MSVCToolChain.cpp: Make version.dll generic for win32.

We may consider msvc features may be capable on mingw host, if it can.
Consider --host=mingw --target=msvc.

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

8 years agoMSVCToolChain.cpp: Use explicit constructor for SmallString from std::string, to...
NAKAMURA Takumi [Sat, 14 May 2016 08:09:12 +0000 (08:09 +0000)]
MSVCToolChain.cpp: Use explicit constructor for SmallString from std::string, to appease mingw-g++.

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

8 years agoUpdate identifiers as needed when loading macros from serialized ASTs.
Sean Callanan [Sat, 14 May 2016 06:24:14 +0000 (06:24 +0000)]
Update identifiers as needed when loading macros from serialized ASTs.

This is essential for iterating across macros properly, which LLDB does when
loading macros from modules.  A naiver version of this patch (without the
conditional) caused assertion failures in the testsuite, but this version should
be safe.

Thanks to Ben Langmuir for the refinement that made this work.

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

8 years agoFixed a bug where the ASTImporter didn't propagate builtin IDs at all.
Sean Callanan [Sat, 14 May 2016 06:11:19 +0000 (06:11 +0000)]
Fixed a bug where the ASTImporter didn't propagate builtin IDs at all.

IdentifierInfos are assigned builtin IDs during parsing, but Idents.get() does
not do that work.  So the ASTImporter needs to additionally set the builtin ID
for the newly-created IdentifierInfo.  This patch does that.

Currently ASTMerge tests only check syntax and the ASTMatchers don't check for
builtin IDs, so this is tricky to test, but LLDB will have a test for this.

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

8 years ago[X86] Change most 'void' pointers in builtin type lists to more correct types. Fix...
Craig Topper [Sat, 14 May 2016 06:03:13 +0000 (06:03 +0000)]
[X86] Change most 'void' pointers in builtin type lists to more correct types. Fix some unaligned load/store intrinsics to use a less aligned type in their pointer casts.

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

8 years agoHandle injected class names in the ASTImporter.
Sean Callanan [Sat, 14 May 2016 05:43:57 +0000 (05:43 +0000)]
Handle injected class names in the ASTImporter.

Every class as parsed by Clang has a forward declaration of itself as a member:

class A {
  class A;
  ...
}

but when the parser generates this it ensures that the RecordTypes for the two
are the same.  This makes (among other things) inheritance work.  This patch
fixes a bug where the ASTImporter generated two separate RecordTypes when
importing the class and the contained forward declaration, and adds a test case.

Thanks to Doug Gregor for advice on this.

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

8 years agoRevert "Reapply "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC""
Chandler Carruth [Sat, 14 May 2016 05:39:45 +0000 (05:39 +0000)]
Revert "Reapply "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC""

This reverts commit r269492 as the corresponding LLVM commit was
reverted due to lots of warnings. See the review thread for the original
LLVM commit (r269491) for details.

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

8 years agoAdded support to the ASTImporter for C++ constructor initializers.
Sean Callanan [Sat, 14 May 2016 05:20:31 +0000 (05:20 +0000)]
Added support to the ASTImporter for C++ constructor initializers.

Thanks to Aleksei Sidorin for review and advice.

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

8 years agoWhen typo-correcting a using-declaration, actually correct the name of the
Richard Smith [Sat, 14 May 2016 01:58:49 +0000 (01:58 +0000)]
When typo-correcting a using-declaration, actually correct the name of the
UsingDecl (so that redeclaration lookup can find it).

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

8 years agoFix some typos.
Richard Smith [Sat, 14 May 2016 01:21:40 +0000 (01:21 +0000)]
Fix some typos.

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

8 years ago[AVX512] Update pshufd type strings to match the backend. Also mark the immediate...
Craig Topper [Sat, 14 May 2016 00:49:36 +0000 (00:49 +0000)]
[AVX512] Update pshufd type strings to match the backend. Also mark the immediate as an ICE instead of marking the previous vector as const.

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

8 years ago[VFS] Add level() method to vfs::recursive_directory_iterator
Bruno Cardoso Lopes [Sat, 14 May 2016 00:00:18 +0000 (00:00 +0000)]
[VFS] Add level() method to vfs::recursive_directory_iterator

Unlike sys::fs::recursive_directory_iterator,
vfs::recursive_directory_iterator does not implement the level() method,
which tells how deep in the directory tree the current iterator is. This
is needed in the vfs::recursive_directory_iterator so that future
improvements to the crash reproducer will be able to properly access
header for umbrellas when looking into the VFS.

rdar://problem/25880368

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

8 years agoGet default -fms-compatibility-version from cl.exe's version
Adrian McCarthy [Fri, 13 May 2016 23:20:11 +0000 (23:20 +0000)]
Get default -fms-compatibility-version from cl.exe's version

-fms-compatibility-version was defaulting to 18 (VS 2013), which is a pain if your environment is pointing to version 19 (VS 2015) libraries.

If cl.exe can be found, this patch uses its version number as the default instead. It re-uses the existing code to find the Visual Studio binaries folder and WinAPI methods to check its version. You can still explicitly specify a compatibility version on the command line. If you don't have cl.exe, this should be a no-op and you'll get the old default of 18.

This affected the tests, which assumed that if you didn't specific a version, that it would default to 18, but this won't be true for all machines. So a couple test cases had to be eliminated and a couple others had to be tweaked to allow for various outputs.

Addresses: https://llvm.org/bugs/show_bug.cgi?id=27215

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

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

8 years ago[ModuleMap][CrashReproducer] Collect headers from inner frameworks
Bruno Cardoso Lopes [Fri, 13 May 2016 22:21:51 +0000 (22:21 +0000)]
[ModuleMap][CrashReproducer] Collect headers from inner frameworks

(1) Collect headers under inner frameworks (frameworks inside other
other frameworks).
(2) Make sure we also collect the right header files inside them.

More info on (2):

Consider a dummy framework module B, with header Frameworks/B/B.h. Now
consider that another framework A, with header Frameworks/A/A.h, has a
layout with a inner framework Frameworks/A/Frameworks/B/B.h, where the
"B/B.h" part is a symlink for Frameworks/B/B.h. Also assume that
Frameworks/A/A.h includes <B/B.h>.

When parsing header Frameworks/A/A.h, framework module lookup is
performed in search for B, and it happens that
"Frameworks/A/Frameworks/B/B.h" path is registered in the module instead
of real "Frameworks/B/B.h". This occurs because
"Frameworks/A/Frameworks/B/B.h" is scanned first by the FileManager,
when looking for inner framework modules under Frameworks/A/Frameworks.
This makes Frameworks/A/Frameworks/B/B.h the default cached named inside
the FileManager for the B.h file UID.

This leads to modules being built without consistent paths to underlying
header files. This is usually not a problem in regular compilation flow,
but it's an issue when running the crash reproducer. The issue is that
clangs collect "Frameworks/A/Frameworks/B/B.h" but not
"Frameworks/B/B.h" into the VFS, leading to err_mmap_umbrella_clash. So
make sure we also collect the original header.

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

rdar://problem/25880368

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

8 years agoReapply "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"
Vedant Kumar [Fri, 13 May 2016 21:51:02 +0000 (21:51 +0000)]
Reapply "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"

Sync up with "(llvm) Use Error in InstrProf and Coverage".

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

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

8 years agoARM-MachO: stop claiming to be EABI
Tim Northover [Fri, 13 May 2016 21:26:45 +0000 (21:26 +0000)]
ARM-MachO: stop claiming to be EABI

Embedded ARM MachO targets are AAPCS but not full EABI (we don't use
__aeabi_whatever and the functions are allowed to be hard-float).

Turns out there was already a test for this, but its original purpose had
become corrupted over the years.

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

8 years agoRevert "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"
Vedant Kumar [Fri, 13 May 2016 20:10:22 +0000 (20:10 +0000)]
Revert "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"

This reverts commit r269463. It fails two llvm-profdata tests.

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

8 years ago[MS ABI] Delegating constructors should not assume they are most derived
David Majnemer [Fri, 13 May 2016 20:05:09 +0000 (20:05 +0000)]
[MS ABI] Delegating constructors should not assume they are most derived

A constructor needs to know whether or not it is most derived in order
to determine if it is responsible for virtual bases.  Delegating
constructors assumed they were most derived.

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

8 years ago[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC
Vedant Kumar [Fri, 13 May 2016 20:01:34 +0000 (20:01 +0000)]
[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC

Sync up with "(llvm) Use Error in InstrProf and Coverage".

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

8 years agoAdd an AST matcher for CastExpr kind
Etienne Bergeron [Fri, 13 May 2016 19:36:55 +0000 (19:36 +0000)]
Add an AST matcher for CastExpr kind

Summary:
This AST matcher will match a given CastExpr kind.
It's an narrowing matcher on CastExpr.

Reviewers: klimek, alexfh, sbenza, aaron.ballman

Subscribers: Prazek, jroelofs, aaron.ballman, klimek, cfe-commits

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

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

8 years agoUse marginally more appropriate functions to detect if we should declare an
Richard Smith [Fri, 13 May 2016 18:48:05 +0000 (18:48 +0000)]
Use marginally more appropriate functions to detect if we should declare an
implicit copy constructor/assignment, and other minor cleanups. No
functionality change intended.

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

8 years agoFix module map typo in r269347.
Richard Smith [Fri, 13 May 2016 17:28:51 +0000 (17:28 +0000)]
Fix module map typo in r269347.

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

8 years agoRevert "[OpenCL] Add supported OpenCL extensions to target info."
Yaxun Liu [Fri, 13 May 2016 17:16:26 +0000 (17:16 +0000)]
Revert "[OpenCL] Add supported OpenCL extensions to target info."

Revert r269431 due to build failure caused by warning msg:

  llvm/tools/clang/lib/Basic/Targets.cpp:2090:9: error: 'setSupportedOpenCLOpts' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override]
   void setSupportedOpenCLOpts() {

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

8 years ago[OpenCL] Add supported OpenCL extensions to target info.
Yaxun Liu [Fri, 13 May 2016 15:44:37 +0000 (15:44 +0000)]
[OpenCL] Add supported OpenCL extensions to target info.

Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions and optional core features in command line.

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

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

8 years agoPrune four superfluous ExternalSemaSource.h includes and one forward declaration...
Yaron Keren [Fri, 13 May 2016 14:53:19 +0000 (14:53 +0000)]
Prune four superfluous ExternalSemaSource.h includes and one forward declaration in Sema.h
where ExternalSemaSource.h was already included due to ExternalSemaSource:: member uses.

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

8 years ago[CodeGen] Clang does not choose aapcs-vfp calling convention for ARM bare metal targe...
Oleg Ranevskyy [Fri, 13 May 2016 14:45:57 +0000 (14:45 +0000)]
[CodeGen] Clang does not choose aapcs-vfp calling convention for ARM bare metal target with hard float (EABIHF)

Summary:
Clang does not detect `aapcs-vfp` for the EABIHF environment. The reason is that only GNUEABIHF is considered while choosing calling convention, EABIHF is ignored.

This causes clang to use `aapcs` for EABIHF and add the `arm_aapcscc` specifier to functions in generated IR.

The modified `arm-cc.c` test checks that no calling convention specifier is added to functions for EABIHF, which means the default one is used (`CallingConv::ARM_AAPCS_VFP`).

Reviewers: rengolin, compnerd, t.p.northover

Subscribers: aemerson, rengolin, asl, cfe-commits

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

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

8 years ago[AST] Add missing const qualifiers to AstContext in Type.cpp
Etienne Bergeron [Fri, 13 May 2016 14:31:44 +0000 (14:31 +0000)]
[AST] Add missing const qualifiers to AstContext in Type.cpp

Summary:
Add some missing const qualifiers to AstContext.
The ASTContext can't be modified with accessors.

There is no behavior change. This patch is cleanup only.

Reviewers: rsmith

Subscribers: cfe-commits

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

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

8 years agoSimplify getLinuxDynamicLinker() by using a common variable for the triple. NFC.
Vasileios Kalintiris [Fri, 13 May 2016 12:34:14 +0000 (12:34 +0000)]
Simplify getLinuxDynamicLinker() by using a common variable for the triple. NFC.

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

8 years ago[mips] Consult triple's vendor field before using musl's interpreter.
Vasileios Kalintiris [Fri, 13 May 2016 12:13:13 +0000 (12:13 +0000)]
[mips] Consult triple's vendor field before using musl's interpreter.

This should affect only the mips-mti-linux toolchain.

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

8 years ago[ms][dll] #27212: Generating of implicit special members should take into account...
Dmitry Polukhin [Fri, 13 May 2016 09:03:56 +0000 (09:03 +0000)]
[ms][dll] #27212: Generating of implicit special members should take into account MSVC compatibility version

Clang creates implicit move constructor/assign operator in all cases if
there is std=c++11. But MSVC supports such generation starting from
version 1900 only. As result we have some binary incompatibility.

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

Patch by Andrew V. Tischenko

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

8 years agoAdd support for derived class special members hiding functions brought in from
Richard Smith [Fri, 13 May 2016 06:47:56 +0000 (06:47 +0000)]
Add support for derived class special members hiding functions brought in from
a base class via a using-declaration. If a class has a using-declaration
declaring either a constructor or an assignment operator, eagerly declare its
special members in case they need to displace a shadow declaration from a
using-declaration.

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

8 years agoExtend this test to also be valid in C++14.
Richard Smith [Fri, 13 May 2016 06:42:55 +0000 (06:42 +0000)]
Extend this test to also be valid in C++14.

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

8 years ago[ObjC][CodeGen] Remove an assert that is no longer correct.
Akira Hatanaka [Fri, 13 May 2016 01:21:23 +0000 (01:21 +0000)]
[ObjC][CodeGen] Remove an assert that is no longer correct.

clang asserts when compiling the following code because r231508 made
changes to promote constant temporary arrays and records to globals
with constant initializers:

std::vector<NSString*> strs = {@"a", @"b"};

This commit changes the code to return early if the object returned by
createReferenceTemporary is a global variable with an initializer.

rdar://problem/25504992
rdar://problem/25955179

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

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

8 years agoPreserve the FoundDecl properly in constructor overload resolution. No
Richard Smith [Thu, 12 May 2016 23:45:49 +0000 (23:45 +0000)]
Preserve the FoundDecl properly in constructor overload resolution. No
functionality change; this information is not yet in use.

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

8 years agoFix Clang-tidy modernize-use-bool-literals in generated code.
Eugene Zelenko [Thu, 12 May 2016 22:27:08 +0000 (22:27 +0000)]
Fix Clang-tidy modernize-use-bool-literals in generated code.

Reduce space in empty constructors and between data members and first public section.

Fix some Include What You Use warnings.

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

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

8 years agoRefactor constant expression evaluation of CXXConstructExpr to reduce duplication...
Richard Smith [Thu, 12 May 2016 22:16:28 +0000 (22:16 +0000)]
Refactor constant expression evaluation of CXXConstructExpr to reduce duplication between array and class initialization.

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

8 years ago[AST] Move operations enum to a definition file.
Etienne Bergeron [Thu, 12 May 2016 20:58:56 +0000 (20:58 +0000)]
[AST] Move operations enum to a definition file.

Summary:
This patch moves the enum definitions to a definition (.def) file.

These modifications provide way to list enumerators of a given type.

As an example, this allow parsing of "kinds" in the dynamic matchers.
see: http://reviews.llvm.org/D19871
The dynamic matcher "ofKind" also required this patch to be fixed.

Reviewers: klimek, aaron.ballman, rsmith

Subscribers: klimek, sbenza, alexfh, cfe-commits

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

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

8 years ago[Tooling] Fix broken dependency for shared build
Etienne Bergeron [Thu, 12 May 2016 19:51:18 +0000 (19:51 +0000)]
[Tooling] Fix broken dependency for shared build

Summary:
There virtual destructor can't be found and cause a compilation error
on a shared build.

To repro: [Release + Shared]
```
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON
```

Which produce this error:
```
tools/clang/unittests/Tooling/CMakeFiles/ToolingTests.dir/ToolingTest.cpp.o: In function `clang::tooling::newFrontendActionFactory_CreatesFrontendActionFactoryFromType_Test::TestBody()':
ToolingTest.cpp:(.text._ZN5clang7tooling66newFrontendActionFactory_CreatesFrontendActionFactoryFromType_Test8TestBodyEv+0x49): undefined reference to `clang::SyntaxOnlyAction::~SyntaxOnlyAction()'
```

Reviewers: alexfh

Subscribers: cfe-commits

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

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

8 years ago[VFS] Reapply #2: Reconstruct the VFS overlay tree for more accurate lookup
Bruno Cardoso Lopes [Thu, 12 May 2016 19:13:07 +0000 (19:13 +0000)]
[VFS] Reapply #2: Reconstruct the VFS overlay tree for more accurate lookup

Reapply r269100 and r269270, reverted due to
https://llvm.org/bugs/show_bug.cgi?id=27725. Isolate the testcase that
corresponds to the new feature side of this commit and skip it on
windows hosts until we find why it does not work on these platforms.

Original commit message:

The way we currently build the internal VFS overlay representation leads
to inefficient path search and might yield wrong answers when asked for
recursive or regular directory iteration.

Currently, when reading an YAML file, each YAML root entry is placed
inside a new root in the filesystem overlay. In the crash reproducer, a
simple "@import Foundation" currently maps to 43 roots, and when looking
up paths, we traverse a directory tree for each of these different
roots, until we find a match (or don't). This has two consequences:

- It's slow.
- Directory iteration gives incomplete results since it only return
results within one root - since contents of the same directory can be
declared inside different roots, the result isn't accurate.

This is in part fault of the way we currently write out the YAML file
when emitting the crash reproducer - we could generate only one root and
that would make it fast and correct again. However, we should not rely
on how the client writes the YAML, but provide a good internal
representation regardless.

Build a proper virtual directory tree out of the YAML representation,
allowing faster search and proper iteration. Besides the crash
reproducer, this potentially benefits other VFS clients.

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

8 years ago[Unittests] Reverse the order of arguments for correct debug output
Bruno Cardoso Lopes [Thu, 12 May 2016 19:13:04 +0000 (19:13 +0000)]
[Unittests] Reverse the order of arguments for correct debug output

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

8 years ago[ubsan] Add -fsanitize-undefined-strip-path-components=N
Filipe Cabecinhas [Thu, 12 May 2016 16:51:36 +0000 (16:51 +0000)]
[ubsan] Add -fsanitize-undefined-strip-path-components=N

Summary:
This option allows the user to control how much of the file name is
emitted by UBSan. Tuning this option allows one to save space in the
resulting binary, which is helpful for restricted execution
environments.

With a positive N, UBSan skips the first N path components.
With a negative N, UBSan only keeps the last N path components.

Reviewers: rsmith

Subscribers: cfe-commits

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

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

8 years ago[OpenCL] Output OpenCL version in diagnostics.
Anastasia Stulova [Thu, 12 May 2016 16:28:25 +0000 (16:28 +0000)]
[OpenCL] Output OpenCL version in diagnostics.

Diagnostics should note version dependent issues by giving
a hint about current version being compiled for.

This patch changes diagnostics of static storage class specifier
and generic type qualifier to specify OpenCL version as well as
converts other diagnostics to match the style.

Patch by Vedran Miletic!

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

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

8 years agoclang-format: [JS] respect clang-format off when requoting strings.
Martin Probst [Thu, 12 May 2016 11:20:32 +0000 (11:20 +0000)]
clang-format: [JS] respect clang-format off when requoting strings.

Reviewers: djasper

Subscribers: klimek, cfe-commits

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

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

8 years ago[Driver] Squash misleading indentation warning.
Marcin Koscielnicki [Thu, 12 May 2016 10:27:59 +0000 (10:27 +0000)]
[Driver] Squash misleading indentation warning.

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

8 years agoRevert "[VFS] Reapply r269100: Reconstruct the VFS overlay tree for more accurate...
Bruno Cardoso Lopes [Thu, 12 May 2016 04:43:27 +0000 (04:43 +0000)]
Revert "[VFS] Reapply r269100: Reconstruct the VFS overlay tree for more accurate lookup"

Reverts r269270, buildbots still failing:
http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/12119
http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/2847

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

8 years agoAdd an AST matcher for string-literal length
Etienne Bergeron [Thu, 12 May 2016 04:20:04 +0000 (04:20 +0000)]
Add an AST matcher for string-literal length

Summary:
This patch is adding support for a matcher to check string literal length.

This matcher is used in clang-tidy checkers and is part of this refactoring:
  see: http://reviews.llvm.org/D19841

Reviewers: sbenza, klimek, aaron.ballman

Subscribers: alexfh, klimek, cfe-commits

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

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

8 years ago[MS ABI] Don't crash when zero-initializing a vbase which contains a vbase
David Majnemer [Thu, 12 May 2016 03:51:52 +0000 (03:51 +0000)]
[MS ABI] Don't crash when zero-initializing a vbase which contains a vbase

Bases can be zero-initialized: the storage is zero-initialized before
the base constructor is run.
The MS ABI has a quirk where base VBPtrs are not installed by the
base constructor but by the most derived class.  In particular, they are
installed before the base constructor is run.
The derived constructor must be careful to zero-initialize only the bits
of the class which haven't already been populated by virtual base
pointers.

While we correctly avoided this scenario, we didn't handle the case
where the base class has virtual bases which have virtual bases.

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

8 years ago[VFS] Reapply r269100: Reconstruct the VFS overlay tree for more accurate lookup
Bruno Cardoso Lopes [Thu, 12 May 2016 03:23:36 +0000 (03:23 +0000)]
[VFS] Reapply r269100: Reconstruct the VFS overlay tree for more accurate lookup

The way we currently build the internal VFS overlay representation leads
to inefficient path search and might yield wrong answers when asked for
recursive or regular directory iteration.

Currently, when reading an YAML file, each YAML root entry is placed
inside a new root in the filesystem overlay. In the crash reproducer, a
simple "@import Foundation" currently maps to 43 roots, and when looking
up paths, we traverse a directory tree for each of these different
roots, until we find a match (or don't). This has two consequences:

- It's slow.
- Directory iteration gives incomplete results since it only return
results within one root - since contents of the same directory can be
declared inside different roots, the result isn't accurate.

This is in part fault of the way we currently write out the YAML file
when emitting the crash reproducer - we could generate only one root and
that would make it fast and correct again. However, we should not rely
on how the client writes the YAML, but provide a good internal
representation regardless.

This patch builds a proper virtual directory tree out of the YAML
representation, allowing faster search and proper iteration. Besides the
crash reproducer, this potentially benefits other VFS clients.

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

8 years ago[tooling] Remove redundant inline keyword
Etienne Bergeron [Thu, 12 May 2016 00:22:28 +0000 (00:22 +0000)]
[tooling] Remove redundant inline keyword

Summary:
The inline keywords are redundant.
Introduce by this commit to try to fix broken build bots:
  http://reviews.llvm.org/D20180

Tested on Debug and Release build [linux].
Tested on Release + Shared (-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON) [linux]
Tested on Release [windows]

Reviewers: alexfh

Subscribers: cfe-commits, klimek

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

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

8 years agoFixed msvc warnings
Simon Pilgrim [Wed, 11 May 2016 21:55:37 +0000 (21:55 +0000)]
Fixed msvc warnings

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

8 years ago[VFS][Unittests] Make dir iteration tests depend only on content
Bruno Cardoso Lopes [Wed, 11 May 2016 20:58:47 +0000 (20:58 +0000)]
[VFS][Unittests] Make dir iteration tests depend only on content

Do not rely on any specific order while comparing the results of
directory iteration.

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

8 years agoPreserve the FoundDecl when performing overload resolution for constructors.
Richard Smith [Wed, 11 May 2016 20:37:46 +0000 (20:37 +0000)]
Preserve the FoundDecl when performing overload resolution for constructors.
This is in preparation for C++ P0136R1, which switches the model for inheriting
constructors over from synthesizing a constructor to finding base class
constructors (via using shadow decls) when looking for derived class
constructors.

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

8 years ago[analyzer] Fix crash in ObjCGenericsChecker
Devin Coughlin [Wed, 11 May 2016 20:28:41 +0000 (20:28 +0000)]
[analyzer] Fix crash in ObjCGenericsChecker

Fix a crash in the generics checker where DynamicTypePropagation tries
to get the superclass of a root class.

This is a spot-fix for a deeper issue where the checker makes assumptions
that may not hold about subtyping between the symbolically-tracked type of
a value and the compile-time types of a cast on that value.

I've added a TODO to address the underlying issue.

rdar://problem/26086914

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

8 years ago[tooling] Fix missing inline keyworkd, breaking build bot.
Etienne Bergeron [Wed, 11 May 2016 20:09:17 +0000 (20:09 +0000)]
[tooling] Fix missing inline keyworkd, breaking build bot.

Summary:
The missing keyword "inline" is causing some buildbot to fail.
The symbol is not available.

see: http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/2281/

Reviewers: rnk

Subscribers: cfe-commits, klimek

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

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

8 years ago[MSVC] Implementation of __unaligned as a proper type qualifier
Andrey Bokhanko [Wed, 11 May 2016 18:38:21 +0000 (18:38 +0000)]
[MSVC] Implementation of __unaligned as a proper type qualifier

This patch implements __unaligned (MS extension) as a proper type qualifier
(before that, it was implemented as an ignored attribute).

It also fixes PR27367 and PR27666.

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

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

8 years agoRelax -Wcalling-convention-cast when casting to the default convention (cdecl)
Reid Kleckner [Wed, 11 May 2016 17:43:13 +0000 (17:43 +0000)]
Relax -Wcalling-convention-cast when casting to the default convention (cdecl)

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

8 years agoEmbed bitcode in object file (clang cc1 part)
Steven Wu [Wed, 11 May 2016 16:26:03 +0000 (16:26 +0000)]
Embed bitcode in object file (clang cc1 part)

Summary:
Teach clang to embed bitcode inside bitcode. When -fembed-bitcode cc1
option is used, clang will embed both the input bitcode and cc1
commandline into the bitcode in special sections before compiling to
the object file.  Using -fembed-bitcode-marker will only introduce a
marker in both sections.

Depends on D17390

Reviewers: rsmith

Subscribers: yaron.keren, vsk, cfe-commits

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

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

8 years agoUpdate clang support on recent Haiku
Reid Kleckner [Wed, 11 May 2016 16:19:05 +0000 (16:19 +0000)]
Update clang support on recent Haiku

[ Copied from https://llvm.org/bugs/show_bug.cgi?id=26404 ]

clang support on Haiku is lagging a bit, and missing on x86_64.

This patch updates support for x86 and add support for x86_64. It should
apply directly to trunk and it's harmless in the sense that it only
affects Haiku.

Reviewers: rnk, rsmith

Patch by Jérôme Duval

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

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

8 years ago[Hexagon] Avoid spurious failures in test/Driver/hexagon-toolchain-elf.c
Krzysztof Parzyszek [Wed, 11 May 2016 16:11:22 +0000 (16:11 +0000)]
[Hexagon] Avoid spurious failures in test/Driver/hexagon-toolchain-elf.c

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