Adam Nemet [Wed, 13 Aug 2014 00:29:01 +0000 (00:29 +0000)]
[AVX512] Add intrinsics for FP scalar broadcasts
Similar approach to the set1 intrinsics is used: implement in terms of vector
initializers and then ensure with an LLVM test that a broadcast is generated
at the end.
Part of <rdar://problem/
17688758>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215486
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Wed, 13 Aug 2014 00:26:40 +0000 (00:26 +0000)]
[UBSan] Add returns-nonnull sanitizer.
Summary:
This patch adds a runtime check verifying that functions
annotated with "returns_nonnull" attribute do in fact return nonnull pointers.
It is based on suggestion by Jakub Jelinek:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-
20140623/223693.html.
Test Plan: regression test suite
Reviewers: rsmith
Reviewed By: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4849
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215485
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 12 Aug 2014 22:16:41 +0000 (22:16 +0000)]
Objective-C [qoi]. Patch to not do Fix-It for fixing
a messaging expression except in the simple case
of a unary selector. We cannot reliably provide such a fixit due
to numerous reasons where a matching selector could not be found.
rdar://
15756038
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215480
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Tue, 12 Aug 2014 21:49:59 +0000 (21:49 +0000)]
Fix the \param comments to have the parameter name.
Summary: This fixes the build break introduced in rL215472
Reviewers: pcc
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D4875
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215476
91177308-0d34-0410-b5e6-
96231b3b80d8
Samuel Benzaquen [Tue, 12 Aug 2014 21:11:37 +0000 (21:11 +0000)]
Support named values in the autocomplete feature.
Summary:
This includes:
- Passing a Sema to completeExpression to allow for named values in the
expression.
- Passing a map of names to values to the parser.
- Update the Sema interface to include completion for matchers.
- Change the parser to use the Sema for completion, instead of going
directly to Registry.
Reviewers: pcc
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D3509
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215472
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Tue, 12 Aug 2014 21:05:04 +0000 (21:05 +0000)]
Improve -Wuninitialized to catch const classes being used in their own copy
constructors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215471
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Tue, 12 Aug 2014 17:53:10 +0000 (17:53 +0000)]
MS ABI: Mangle this qualifiers on function types
C++11 allows this qualifiers to exist on function types when used in
template arguments. Previously, I believed it wasn't possible because
MSVC rejected declarations like: S<int () const &> s;
However, it turns out MSVC properly allows them in using declarations;
updated clang to be compatible with this mangling.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215464
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rose [Tue, 12 Aug 2014 16:44:22 +0000 (16:44 +0000)]
[analyzer] Check for negative values used as the size of a C variable-length array.
Patch by Daniel Fahlgren!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215456
91177308-0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Tue, 12 Aug 2014 16:42:33 +0000 (16:42 +0000)]
Verify all the module map files for a pcm are the same on load
We already verified the primary module map file (either the one that
defines the top-level module, or the one that allows inferring it if it
is an inferred framework module). Now we also verify any other module
map files that define submodules, such as when there is a
module.private.modulemap file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215455
91177308-0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Tue, 12 Aug 2014 16:42:25 +0000 (16:42 +0000)]
Add a module cache path to test/Headers/cxx11
Don't depend on the serialization format remaining the same.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215454
91177308-0d34-0410-b5e6-
96231b3b80d8
Jordan Rose [Tue, 12 Aug 2014 16:20:36 +0000 (16:20 +0000)]
Allow @synchronized to contextually convert a C++ object to an ObjC object pointer.
Patch by Grant Paul!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215453
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Tue, 12 Aug 2014 15:51:49 +0000 (15:51 +0000)]
Objective-C. Fixes an assert where because of captured
variable in block is over-aligned with an align
attribute causing block metadata size not be multiple
of alignment. rdar://
17878679
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215449
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 12 Aug 2014 15:46:24 +0000 (15:46 +0000)]
Use StringRef instead of MemoryBuffer&.
This code doesn't care where the data it is processing comes from, so a
StringRef is probably the most natural interface.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215448
91177308-0d34-0410-b5e6-
96231b3b80d8
Aaron Ballman [Tue, 12 Aug 2014 14:00:40 +0000 (14:00 +0000)]
Adding some test cases to test attribute-related source range diagnostics. This augments r214722, r214723 and r214507.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215444
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexander Kornienko [Tue, 12 Aug 2014 13:34:22 +0000 (13:34 +0000)]
Add documentation on how Language option in .clang-format files work.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215443
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Tue, 12 Aug 2014 13:22:26 +0000 (13:22 +0000)]
clang-format: Avoid bad line break.
Before:
int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(const
typename
aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa);
After:
int
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa(
const typename
aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa);
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215442
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Tue, 12 Aug 2014 09:31:27 +0000 (09:31 +0000)]
clang/test/Frontend/print-header-includes.c REQUIRES shell due to "cd".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215434
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Tue, 12 Aug 2014 08:25:57 +0000 (08:25 +0000)]
Correctly implement -include search logic.
According to the gcc docs, -include uses the current working directory
for the lookup instead of the main source file.
This patch gets rid of NormalizeIncludePath (which relied on an
implementation detail of FileManager / FileEntry for the include path
logic to work), and instead hands the correct lookup information down to
LookupFile.
This will allow us to change the FileEntry's behavior regarding its Name
caching.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215433
91177308-0d34-0410-b5e6-
96231b3b80d8
Frederic Riss [Tue, 12 Aug 2014 04:42:23 +0000 (04:42 +0000)]
Debuginfo: Correctly tag variadic ObjC methods with DW_TAG_unspecified_parameter.
Fixes rdar://
13690847
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215423
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Tue, 12 Aug 2014 00:22:39 +0000 (00:22 +0000)]
Reject virt-specifiers on friend declarations. Give anonymous bitfields a
location so their diagnostics have somewhere to point.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215416
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 11 Aug 2014 23:30:23 +0000 (23:30 +0000)]
Reject varargs '...' in function prototype if there are more parameters after
it. Diagnose with recovery if it appears after a function parameter that was
obviously supposed to be a parameter pack. Otherwise, warn if it immediately
follows a function parameter pack, because the user most likely didn't intend
to write a parameter pack followed by a C-style varargs ellipsis.
This warning can be syntactically disabled by using ", ..." instead of "...".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215408
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 11 Aug 2014 22:11:07 +0000 (22:11 +0000)]
Modify behavior of -ast-dump-lookups: if -ast-dump is not also provided, dump
anyway. If -ast-dump *is* also provided, then dump the AST declarations as well
as the lookup results. This is invaluable for cross-correlating the lookup
information with the declarations actually found.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215393
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Aug 2014 22:08:06 +0000 (22:08 +0000)]
Change MemoryBuffer* to MemoryBuffer& parameter to Lexer::ComputePreamble
(dropping const from the reference as MemoryBuffer is immutable already,
so const is just redundant - and while I'd personally put const
everywhere, that's not the LLVM Way (see llvm::Type for another example
of an immutable type where "const" is omitted for brevity))
Changing the pointer argument to a reference parameter makes call sites
identical between callers with unique_ptrs or raw pointers, minimizing
the churn in a pending unique_ptr migrations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215391
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Aug 2014 21:29:24 +0000 (21:29 +0000)]
unique_ptr-ify FileSystemStatCache::setNextStatCache
And in the process, discover that FileManager::removeStatCache had a
double-delete when removing an element from the middle of the list (at
the beginning or the end of the list, there was no problem) and add a
unit test to exercise the code path (which successfully crashed when run
(with modifications to match the old API) without this patch applied)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215388
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Mon, 11 Aug 2014 18:47:26 +0000 (18:47 +0000)]
unique_ptr-ify the MemoryBuffer parameter of GlobalModuleIndex
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215376
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Mon, 11 Aug 2014 18:35:44 +0000 (18:35 +0000)]
Add some FIXMEs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215375
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 11 Aug 2014 18:33:59 +0000 (18:33 +0000)]
Sema: Properly perform lookup when acting on fields for desig inits
Clang used a custom implementation of lookup when handling designated
initializers. The custom code was not particularly optimized and relied
on standard lookup for typo-correction anyway.
This custom code has to go, it doesn't properly support MSVC-style
anonymous structs embedded inside other records; replace it with the
typo-correction path.
This has the side effect of speeding up semantic handling of the fields
for a designated initializer while simplifying the code at the same
time.
This fixes PR20573.
Differential Revision: http://reviews.llvm.org/D4839
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215372
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Mon, 11 Aug 2014 18:21:34 +0000 (18:21 +0000)]
Revert r215365 - Coverage mapping: emit mapping for cxx constructors that use microsoft's ABI
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215371
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 11 Aug 2014 18:09:32 +0000 (18:09 +0000)]
ToolChains.cpp: Increase size of Lines vector in DetectDistro
In a Clang bootstrap, the size of this vector was always 11.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215370
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 11 Aug 2014 18:09:28 +0000 (18:09 +0000)]
Increase the size of two SmallVectors in Generic_GCC::GCCInstallationDetector::init
In a bootstrap build of Clang, the size was always greater than 12.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215369
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Mon, 11 Aug 2014 18:09:03 +0000 (18:09 +0000)]
GCC compatibility: Ignore -fexec-charset=UTF-8 argument. It is the default in Clang. Reject other values.
Summary:
Just like with -finput-charset=UTF-8 in review http://reviews.llvm.org/D4347, I think we should just ignore it when UTF-8 is provided.
Reviewers: rnk, rafael
Reviewed By: rafael
Subscribers: rafael, cfe-commits
Differential Revision: http://reviews.llvm.org/D4841
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215368
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Mon, 11 Aug 2014 17:45:49 +0000 (17:45 +0000)]
Coverage mapping: emit mapping for cxx constructors that use microsoft's ABI
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215365
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 11 Aug 2014 16:15:57 +0000 (16:15 +0000)]
Increase the size of ToolChain::FilePaths
In a Clang bootstrap build, the size was always at least 9.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215362
91177308-0d34-0410-b5e6-
96231b3b80d8
Hans Wennborg [Mon, 11 Aug 2014 16:05:54 +0000 (16:05 +0000)]
Increase SmallVector<> size in DiagnosticsEngine::setSeverityForGroup
In a Clang bootstrap, this vector always held 129 elements.
Also switch to a range-based for loop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215360
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Mon, 11 Aug 2014 14:54:30 +0000 (14:54 +0000)]
Work around default parameter problem in the static analyzer.
In cases like:
struct C { ~C(); }
void f(C c = C());
void t() {
f();
}
We currently do not add the CXXBindTemporaryExpr for the temporary (the
code mentions that as the default parameter expressions are owned by
the declaration, we'd otherwise add the same expression multiple times),
but we add the temporary destructor pointing to the CXXBindTemporaryExpr.
We need to fix that before we can re-enable the assertion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215357
91177308-0d34-0410-b5e6-
96231b3b80d8
Roman Kashitsyn [Mon, 11 Aug 2014 12:18:01 +0000 (12:18 +0000)]
Fixes bug 20587 - Add K&R break before braces style
Summary:
http://llvm.org/bugs/show_bug.cgi?id=20587
Added K&R style. It could be enabled by the following option:
```
BreakBeforeBraces: KernighanRitchie
```
This style is like `Attach`, but break *only* before function
declarations.
As I can see, no additional logic required to support this style, any
style different from other styles automagically satisfies K&R.
Reviewers: djasper
Reviewed By: djasper
Subscribers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D4837
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215354
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Mon, 11 Aug 2014 11:37:33 +0000 (11:37 +0000)]
Properly #include ASTConsumer.h instead of forward declaration.
Otherwise, this can lead to compile failures if a user/subclass of
FrontendAction doesn't #include this file, even if CreateASTConsumer
isn't used directly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215353
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Mon, 11 Aug 2014 07:29:54 +0000 (07:29 +0000)]
Sema: Handle declspecs without declarators in records properly in C mode
We had two bugs:
- We wouldn't properly warn when a struct/union/enum was mentioned
inside of a record definition if no declarator was provided. We
should have mentioned that this declaration declares nothing.
- We didn't properly support Microsoft's extension where certain
declspecs without declarators would act as anonymous structs/unions.
* We completely ignored the case where such a declspec could be a
union.
* We didn't properly handle the case where a record was defined inside
another record:
struct X {
int a;
struct Y {
int b;
};
};
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215347
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Mon, 11 Aug 2014 06:53:11 +0000 (06:53 +0000)]
Revert r215331, "unique_ptrify CompilerInstance::OutputFile(s) and remove a unique_ptr around a non-owning raw_ostream in CodeGenAction::CreateASTConsumer"
It cannot be compiled on Visual Studio 2012.
clang\include\clang/Frontend/CompilerInstance.h(153):
error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
with
[
_Ty=llvm::raw_ostream
]
D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\memory(1447) : see declaration of 'std::unique_ptr<_Ty>::unique_ptr'
with
[
_Ty=llvm::raw_ostream
]
This diagnostic occurred in the compiler generated function 'clang::CompilerInstance::OutputFile::OutputFile(const clang::CompilerInstance::OutputFile &)'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215346
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 23:35:58 +0000 (23:35 +0000)]
unique_ptrify CompilerInstance::OutputFile(s) and remove a unique_ptr around a non-owning raw_ostream in CodeGenAction::CreateASTConsumer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215331
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 21:06:17 +0000 (21:06 +0000)]
Follow up to r215323 - avoid llvm::make_unique in this particular case that's causing GCC on some buildbots some confusion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215327
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 20:12:39 +0000 (20:12 +0000)]
Out-of-line CompilerInstance::takeSema to avoid a header dependence from CompilerInstance.h on Sema.h
Hopefully this fixes the libstdc++ build on some of the buildbots after
r215321.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215325
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 19:56:51 +0000 (19:56 +0000)]
Recommit 213307: unique_ptr-ify ownership of ASTConsumers (reverted in r213325)
After post-commit review and community discussion, this seems like a
reasonable direction to continue, making ownership semantics explicit in
the source using the type system.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215323
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 19:23:01 +0000 (19:23 +0000)]
Remove unused CompilerInstance::takeCodeCompletionConsumer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215322
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 19:14:48 +0000 (19:14 +0000)]
unique_ptr-ify CompilerInstance::takeSema
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215321
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 19:08:04 +0000 (19:08 +0000)]
std::unique_ptr-ify the result of ASTUnit::LoadFromASTFile
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215320
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 17:03:42 +0000 (17:03 +0000)]
unique_ptr-ify FrontendAction::takeCurrentASTUnit
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215319
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 16:57:11 +0000 (16:57 +0000)]
unique_ptr-ify FileSystemStatCache::takeNextStatCache
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215318
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sun, 10 Aug 2014 16:54:39 +0000 (16:54 +0000)]
unique_ptr-ify ASTReaderListener in the ASTReader
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215317
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 10 Aug 2014 13:48:47 +0000 (13:48 +0000)]
ModuleMap.h: Prune an obsolete "\param ModuleMap" corresponding to r215268.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215316
91177308-0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Sun, 10 Aug 2014 11:40:51 +0000 (11:40 +0000)]
Fix PR20444 -- wrong number of vftable slots created when return adjustment thunks are needed
Reviewed at http://reviews.llvm.org/D4822
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215312
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sun, 10 Aug 2014 02:20:15 +0000 (02:20 +0000)]
[modules] When considering merging a newly-declared typedef into an imported
one, perform the import if the types match even if the imported declaration is
hidden. Otherwise, NamedDecl::declarationReplaces will drop one of the name
lookup entries, making the typedef effectively inaccessible from one of the
modules that declared it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215306
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaron Keren [Sat, 9 Aug 2014 21:24:04 +0000 (21:24 +0000)]
Make this test unsupported when there is no real 'env' from a real shell.
While the test was already requiring shell-preserves-root (such as the
internal shell), it wasn't aware that the MSYS 1.0 env command knows how
to expand root by itself!
From cmd.exe try:
env SDKROOT=/ cmd //c echo %SDKROOT%
And get:
C:/MINGW/MSYS/1.0
To be certain we have a good 'env' program the test now requires a shell.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215298
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Sat, 9 Aug 2014 21:06:57 +0000 (21:06 +0000)]
Actually add the object file, skipped by the directory add.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215297
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Sat, 9 Aug 2014 20:02:07 +0000 (20:02 +0000)]
Use std::unique_ptr to handle transient ownership of UnwrappedLine in ScopedLineState
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215294
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Sat, 9 Aug 2014 19:01:52 +0000 (19:01 +0000)]
Use the correct fallback directory for EABIHF targets on NetBSD/arm.
From Matt Thomas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215292
91177308-0d34-0410-b5e6-
96231b3b80d8
Joerg Sonnenberger [Sat, 9 Aug 2014 18:28:36 +0000 (18:28 +0000)]
NetBSD/aarch64 has no libgcc or libstdc++. Drop arm64 tests.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215291
91177308-0d34-0410-b5e6-
96231b3b80d8
Yaron Keren [Sat, 9 Aug 2014 18:13:01 +0000 (18:13 +0000)]
Fix six tests are failing on Windows after r215241-r215243.
Clang :: Frontend/iframework.c
Clang :: Frontend/system-header-prefix.c
Clang :: Index/annotate-comments-objc.m
Clang :: Index/annotate-module.m
Clang :: Index/index-module.m
Clang :: Index/index-pch-with-module.m
Clang :: PCH/case-insensitive-include.c
Suprisingly the normalize_separators() was no-op when LLVM_ON_WIN32.
Its replacement native() does change path separators into \ as expected,
breaking these tests.
I had fixed the tests by #ifndef LLVM_ON_WIN32 on the native call,
to match the previous behaviour.
If this logic is not used on Windows host, it might be completely
deleted as there should not be windows path seperators on Linux hosts.
I can't test on Linux but if someone can run tests on Linux after
commenting out the line
llvm::sys::path::native(NormalizedPath);
and the tests pass, the whole if (LangOpts.MSVCCompat) could be deleted.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215290
91177308-0d34-0410-b5e6-
96231b3b80d8
Timur Iskhodzhanov [Sat, 9 Aug 2014 17:08:06 +0000 (17:08 +0000)]
Fix PR20479 -- missing vftable slots in case of virtual inheritance vs return adjusting thunks
Reviewed at http://reviews.llvm.org/D4829
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215285
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sat, 9 Aug 2014 03:55:09 +0000 (03:55 +0000)]
Revert "Add tests for coverage mapping generation."
I reverted one of the added tests from r215261 in r215274, since it
was failing on quite a few bots. It looks like this wasn't sufficient,
as we're still getting failures on windows, like the following:
http://bb.pgr.jp/builders/ninja-x64-msvc-RA-centos6/builds/5378
I'm reverting this entire commit so the bots aren't blocked on these
failures.
This reverts commit r215261.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215278
91177308-0d34-0410-b5e6-
96231b3b80d8
Justin Bogner [Sat, 9 Aug 2014 01:40:59 +0000 (01:40 +0000)]
Revert a failing test from r215261
The (new) CoverageMapping/macroparams.c test is failing on a number of
buildbots. Reverting it until Alex can investigate and fix the test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215274
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Sat, 9 Aug 2014 01:24:07 +0000 (01:24 +0000)]
[modules] Weaken an out-of-date assertion: an #undef can have no location if we
imported it from a module when performing finalization before writing out
an AST file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215272
91177308-0d34-0410-b5e6-
96231b3b80d8
Ben Langmuir [Sat, 9 Aug 2014 00:57:23 +0000 (00:57 +0000)]
Refactor the module map file used for uniquing a module name out of
class Module. It's almost always going to be the same as
getContainingModule() for top-level modules, so just add a map to cover
the remaining cases. This lets us do less bookkeeping to keep the
ModuleMap fields up to date.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215268
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Aug 2014 23:59:38 +0000 (23:59 +0000)]
Remove some transient raw pointer ownership in ClangAttrEmitter::createArgument
This function might be a bit easier if it were split in two with a lot
of early returns - and that setOptional bit in the outer function, but
anyway.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215263
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Fri, 8 Aug 2014 23:49:58 +0000 (23:49 +0000)]
Add tests for coverage mapping generation.
This patch adds the tests for the coverage mapping generation.
Most of the tests check the mapping regions produced by
the generator, and one checks the llvm IR.
Differential Revision: http://reviews.llvm.org/D4793
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215261
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 8 Aug 2014 23:46:28 +0000 (23:46 +0000)]
Add predefined macros to identify x86_64h architectures.
Patch by Jim Grosbach.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215260
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 8 Aug 2014 23:46:25 +0000 (23:46 +0000)]
Predefine IB_DESIGNABLE and IBInspectable macros. <rdar://problem/
17441860>
These macros are used as markers for Interface Builder and need to be defined
to empty strings since they have no impact on the code.
Patch by Ted Kremenek.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215259
91177308-0d34-0410-b5e6-
96231b3b80d8
Alex Lorenz [Fri, 8 Aug 2014 23:41:24 +0000 (23:41 +0000)]
Add a cc1 "dump-coverage-mapping" for testing coverage mapping.
Differential Revision: http://reviews.llvm.org/D4799
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215258
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Aug 2014 23:36:37 +0000 (23:36 +0000)]
Simplify ownership of ExplodedGraph in the CoreEngine by removing unique_ptr indirection.
Summary: I was going to fix the use of raw pointer ownership in "takeGraph" when I realized that function was unused and the whole ExplodedGraph could just be owned by value without the std::unique_ptr indirection at all.
Reviewers: jordan_rose
Differential Revision: http://reviews.llvm.org/D4833
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215257
91177308-0d34-0410-b5e6-
96231b3b80d8
Alexey Samsonov [Fri, 8 Aug 2014 22:47:17 +0000 (22:47 +0000)]
Add -link-cxx-sanitizer driver flag.
Summary:
This flag can be used to force linking of CXX-specific parts
of sanitizer runtimes into the final executable. It gives more precise
control than --driver-mode=g++ and comes handy when user links several
object files with sanitized C++ code into an executable, but wants
to provide libstdc++ himself, instead of relying on Clang dirver's
behavior.
Test Plan: clang regression test suite
Reviewers: chandlerc, rsmith
Reviewed By: rsmith
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4824
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215252
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Trieu [Fri, 8 Aug 2014 22:41:43 +0000 (22:41 +0000)]
Extend tautological pointer compare and pointer to bool conversion warnings to
macro arguments.
Previously, these warnings skipped any code in a macro expansion. Preform an
additional check and warn when the expression and context locations are both
in the macro argument.
The most obvious case not caught is passing a pointer directly to a macro,
i.e 'assert(&array)' but 'assert(&array && "valid array")' is caught. This is
because macro arguments are not typed and the conversion happens inside the
macro.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215251
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 8 Aug 2014 22:33:24 +0000 (22:33 +0000)]
Objective-C [qoi]. Issue warning and fixit if property-dot syntax
use mis-cased property name (which is currently accepted silently
due to the way property setters are named). rdar://
17911746
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215250
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Aug 2014 22:01:06 +0000 (22:01 +0000)]
Sure-up MemoryBuffer ownership in JSONCompilationDatabase's ctor.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215246
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 8 Aug 2014 21:45:53 +0000 (21:45 +0000)]
Change __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ for versions > 10.9.
The previous encoding only allowed a single digit for the minor version
number. This changes it to use 2 digits for both the minor version and the
revision number.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215245
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 8 Aug 2014 21:31:04 +0000 (21:31 +0000)]
Use llvm::sys::path::native instead of llvm::sys::fs::normalize_separators.
llvm::sys::path::native has a superset of the functionality and this was the
only use of llvm::sys::fs::normalize_separators.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215242
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 8 Aug 2014 18:39:01 +0000 (18:39 +0000)]
Partially revert r215204 - [mips] Add -mabicalls/-mno-abicalls to the driver
It wasn't actually a bug that -mabicalls/-mno-abicalls wasn't being passed to
GAS. The only reason we pass it to the integrated assembler is because it shares
the same framework with CodeGen.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215236
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 8 Aug 2014 18:29:52 +0000 (18:29 +0000)]
Objective-C. Minor refactoring of my previous patch.
rdar://
17554063
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215235
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 8 Aug 2014 17:31:14 +0000 (17:31 +0000)]
Objective-C ARC. Use of non-retain/autorelease API
for building Objective-C array literals in ARC
mode. rdar://
17554063
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215232
91177308-0d34-0410-b5e6-
96231b3b80d8
Sylvestre Ledru [Fri, 8 Aug 2014 17:15:13 +0000 (17:15 +0000)]
Fix a bug when scan-build is used in a cross-compilation environment with
the --use-cc option.
Instead, we will search in the PATH
For example:
scan-build --use-cc=arm-none-eabi-gcc -o out make -e
Initially reported as a Debian Bug:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748777
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215229
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Aug 2014 17:10:14 +0000 (17:10 +0000)]
DebugInfo: Blocks: Do not depend on LLVM argument numbering when choosing the debug info argument numbering.
Due to the possible presence of return-by-out parameters, using the LLVM
argument number count when numbering debug info arguments can end up
off-by-one. This could produce two arguments with the same number, which
would in turn cause LLVM to emit only one of those arguments (whichever
it found last) or assert (r215157).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215227
91177308-0d34-0410-b5e6-
96231b3b80d8
David Blaikie [Fri, 8 Aug 2014 16:06:15 +0000 (16:06 +0000)]
CompilationDatabase: Sure-up ownership of compilation databases using std::unique_ptr
Diving into the memory leaks fixed by r213851 there was one case of a
memory leak of a CompilationDatabase due to not properly taking
ownership of the result of "CompilationDatabase::autoDetectFromSource".
Given that both implementations and callers have been using unique_ptr
to own CompilationDatabase objects - make this explicit in the API to
reduce the risk of further leaks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215215
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 8 Aug 2014 15:47:17 +0000 (15:47 +0000)]
[mips] Invert the abicalls feature bit to be noabicalls so that it's possible for -mno-abicalls to take effect.
Also added the testcase that should have been in r215194.
This behaviour has surprised me a few times now. The problem is that the
generated MipsSubtarget::ParseSubtargetFeatures() contains code like this:
if ((Bits & Mips::FeatureABICalls) != 0) IsABICalls = true;
so '-abicalls' means 'leave it at the default' and '+abicalls' means 'set it to
true'. In this case, (and the similar -modd-spreg case) I'd like the code to be
IsABICalls = (Bits & Mips::FeatureABICalls) != 0;
or possibly:
if ((Bits & Mips::FeatureABICalls) != 0)
IsABICalls = true;
else
IsABICalls = false;
and preferably arrange for 'Bits & Mips::FeatureABICalls' to be true by default
(on some triples).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215211
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Bendersky [Fri, 8 Aug 2014 14:59:00 +0000 (14:59 +0000)]
Expose the CUDA shared attribute to the C API.
Similar to r209767, which exposed other CUDA-related attributes.
Patch by Rob Springer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215208
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Sanders [Fri, 8 Aug 2014 13:44:50 +0000 (13:44 +0000)]
[mips] Add -mabicalls/-mno-abicalls to the driver
Based on a patch by Matheus Almeida. I've added testcases and fixed a bug where
the options weren't passed on to GAS.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215204
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 8 Aug 2014 13:24:19 +0000 (13:24 +0000)]
Add missing header guards.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215202
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Jasper [Fri, 8 Aug 2014 12:00:13 +0000 (12:00 +0000)]
clang-format: Prefer not to put lambdas on a single line.
Before:
string abc =
SomeFunction(
aaaaaaaaaaaaa, aaaaa,
[]() { SomeOtherFunctioooooooooooooooooooooooooon(); });
After:
string abc = SomeFunction(
aaaaaaaaaaaaa, aaaaa, []() {
SomeOtherFunctioooooooooooooooooooooooooon();
});
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215197
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 8 Aug 2014 09:51:07 +0000 (09:51 +0000)]
clangAnalysis: Avoid member initializers in TempDtorContext to appease msc17.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215193
91177308-0d34-0410-b5e6-
96231b3b80d8
Manuel Klimek [Fri, 8 Aug 2014 07:37:13 +0000 (07:37 +0000)]
Fix branch reachabiliy annotation for temp dtor branches.
As we only create temp dtor decision branches when a temp dtor needs to
be run (as opposed to for each logical branch in the original
expression), we must include the information about all previous logical
branches when we annotate the temp dtor decision branch.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215188
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 8 Aug 2014 07:21:18 +0000 (07:21 +0000)]
Parser: Array decls with static but without array size are illformed
Array declarators involving the static keyword take on two forms:
D[ static type-qualifier-listopt assignment-expression ]
D[ type-qualifier-list static assignment-expression ]
Raise a diagnostic if the assignment-expression is missing.
This fixes PR20584.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215187
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Fri, 8 Aug 2014 01:26:23 +0000 (01:26 +0000)]
[CMake] Upate libdeps in FrontendTests corresponding to r215145.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215177
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Fri, 8 Aug 2014 00:10:39 +0000 (00:10 +0000)]
MS ABI: Don't force bases to have an inheritance model
Previously, assigning an inheritance model to a derived class would
trigger further assiginments to the various bases of the class. This
was done to fix a bug where we couldn't handle an implicit
base-to-derived conversion for pointers-to-members when the conversion
was ambiguous at an earlier point.
However, this is not how the MS scheme works. Instead, assign
inheritance models to *just* the class which owns to declaration we
ended up referencing.
N.B. This result is surprising in many ways. It means that it is
possible for a base to have a "larger" inheritance model than it's
derived classes. It also means that bases in the conversion path do not
get assigned a model.
struct A { void f(); void f(int); };
struct B : A {};
struct C : B {};
void f() { void (C::*x)() = &A::f; }
We can only begin to assign an inheritance model *after* we've seen the
address-of but *before* we've done the implicit conversion the more
derived pointer-to-member type. After that point, both 'A' and 'C' will
have an inheritance model but 'B' will not. Surprising, right?
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215174
91177308-0d34-0410-b5e6-
96231b3b80d8
David Majnemer [Thu, 7 Aug 2014 22:56:13 +0000 (22:56 +0000)]
MS ABI: Handle member function pointers returning a member data pointer
MSVC doesn't decide what the inheritance model for a returned member
pointer *until* a call expression returns it.
This fixes PR20017.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215164
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 7 Aug 2014 22:09:08 +0000 (22:09 +0000)]
Temporarily Revert "Update for llvm API change."
This reverts commit 215113 to match the reversion in llvm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215156
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 7 Aug 2014 21:29:25 +0000 (21:29 +0000)]
Debug info: Use the vbtable offset for virtual bases in the MS ABI
There are no vtable offset offsets in the MS ABI, but vbtable offsets
are analogous. There are no consumers of this information yet, but at
least we don't crash now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215149
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 7 Aug 2014 20:58:41 +0000 (20:58 +0000)]
[modules] Don't defer performing updates if we have incomplete redecl chains.
Instead, perform them carefully immediately.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215147
91177308-0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 7 Aug 2014 20:57:35 +0000 (20:57 +0000)]
Objective-C arc. Switch the Objective-C dictionary literal in ARC mode
to use non-retain/autorelease API variants of ObjC objects. wip.
rdar://
17554063
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215146
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Thu, 7 Aug 2014 20:51:16 +0000 (20:51 +0000)]
Flip the order the preprocessor and frontendaction are informed of the end of a file.
This allows using EndOfMainFile from a PPCallback to access data from the
action. The pattern of PPCallback referencing an action is common in clang-tidy.
Differential Revision: http://reviews.llvm.org/D4773
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215145
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 7 Aug 2014 20:36:48 +0000 (20:36 +0000)]
Revert "Debug info: Use record layout to find vbase offsets instead of vtables"
This reverts commit r215137.
This doesn't work at all, an offset-offset is probably different than an
offset. I'm scared that this passed our normal test suite.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215141
91177308-0d34-0410-b5e6-
96231b3b80d8
Reid Kleckner [Thu, 7 Aug 2014 19:43:01 +0000 (19:43 +0000)]
Debug info: Use record layout to find vbase offsets instead of vtables
This fixes an assertion when generating full debug info in the MS ABI
for classes with virtual bases.
Fixes PR20579.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215137
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Smith [Thu, 7 Aug 2014 18:53:08 +0000 (18:53 +0000)]
[modules] When emitting an update record containing the body of a destructor,
also emit the updated 'operator delete' looked up for that destructor. Switch
from UpdateDecl to an actual update record when this happens due to implicitly
defining a special member function and unify this code path and the one for
instantiating a function definition.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215132
91177308-0d34-0410-b5e6-
96231b3b80d8