Commit Graph

64061 Commits

Author SHA1 Message Date
Devin Coughlin fd6d0821eb Revert "[analyzer] Reapply r271907 (2nd try)."
Even with the fix in r271981, ASan is finding a stack use after return.

This reverts commits r271977 and r271981.

llvm-svn: 271984
2016-06-07 05:37:02 +00:00
Devin Coughlin 2737d99191 [analyzer] Speculative fix for r271907.
Fix a compilation error on the bots involving brace initialization.

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

llvm-svn: 271981
2016-06-07 04:44:52 +00:00
Xiuli Pan 244e3f69e4 [OPENCL] Fix wrongly vla error for OpenCL array.
Summary:
OpenCL should support array with const value size length, those const
varibale in global and constant address space and variable in constant
address space.

Fixed test case error.

Reviewers: Anastasia, yaxunl, bader

Subscribers: bader, cfe-commits

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

llvm-svn: 271978
2016-06-07 04:34:00 +00:00
Devin Coughlin cc1fb35705 [analyzer] Reapply r271907 (2nd try).
Second try at reapplying
"[analyzer] Add checker for correct usage of MPI API in C and C++."

Special thanks to Dan Liew for helping test the fix for the template
specialization compiler error with gcc.

The original patch is by Alexander Droste!

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

llvm-svn: 271977
2016-06-07 04:23:08 +00:00
Igor Kudrin a8c1d8bb6d Revert [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files.
r271969 The test case fails on Windows.

llvm-svn: 271976
2016-06-07 04:11:51 +00:00
Xiuli Pan a219552ca8 Revert "[OPENCL] Fix wrongly vla error for OpenCL array."
Test case break on system-z.

This reverts commit 9a7212e1e87f1396952d74f8c62314a775ccbb1c.

llvm-svn: 271975
2016-06-07 03:41:07 +00:00
Xiuli Pan bdfbaaaefe [OPENCL] Fix wrongly vla error for OpenCL array.
Summary:
OpenCL should support array with const value size length, those const varibale in global and constant address space and variable in constant address space.

Reviewers: Anastasia, yaxunl, bader

Subscribers: bader, cfe-commits

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

llvm-svn: 271971
2016-06-07 03:13:39 +00:00
Igor Kudrin 6fd589a763 [Coverage] Fix an assertion failure if the definition of an unused function spans multiple files.
We have an assertion failure if, for example, the definition of an unused
inline function starts in one macro and ends in another. This patch fixes
the issue by finding the common ancestor of the start and end locations
of that function's body and changing the locations accordingly.

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

llvm-svn: 271969
2016-06-07 02:17:03 +00:00
Mike Spertus 8a0a1d7385 Improve Visual Studio visualization of DeclaratorDecl
With this change, you can now expand its name and type.

llvm-svn: 271966
2016-06-07 00:27:37 +00:00
Artem Belevich bcec9dac14 [CUDA] Add implicit conversion of __launch_bounds__ arguments to rvalue.
Fixes clang crash reported in PR27778.

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

llvm-svn: 271951
2016-06-06 22:54:57 +00:00
Mike Spertus 1f56e99933 Improved Visual Studio visualizations for template argument lists
Improved the visualizer for TemplateArgumentList to show type arguments in the DisplayString.
E.g., <double, long>. Added a visualizer for MultiLevelTemplateArgumentList.
I decided to display them by how they would appear in a template with the
(non-existent) template-id's omitted, so the DisplayString naturally presents
as something like <double, long>::<char *>.

llvm-svn: 271944
2016-06-06 21:41:20 +00:00
Chris Bieneman 47033ca521 [CMake] Fixing a typo in a CMake option
CMake defines are set with -D, forgetting the D doesn’t work.

llvm-svn: 271937
2016-06-06 20:18:38 +00:00
Aaron Ballman ba8dbbe86f Adding an AST matcher to ignore parenthesis in *types* (rather than expressions). This is required for traversing certain types (like function pointer types).
llvm-svn: 271927
2016-06-06 18:52:17 +00:00
Devin Coughlin 917a42d8b5 Revert "Reapply "[analyzer] Add checker for correct usage of MPI API in C and C++.""
This reverts commit r271914. It is still breaking bots.

llvm-svn: 271920
2016-06-06 18:29:43 +00:00
Rafael Espindola 811e1ee03e Add a release note about the --build-id change.
llvm-svn: 271918
2016-06-06 18:23:11 +00:00
Devin Coughlin 8027409be4 Reapply "[analyzer] Add checker for correct usage of MPI API in C and C++."
Reapply r271907 with a fix for the compiler error with gcc about specializing
clang::ento::ProgramStateTrait in a different namespace.

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

llvm-svn: 271914
2016-06-06 18:08:35 +00:00
Mike Spertus 3d1ab08e8a Fix typo in last submission to visualize proper template argument
llvm-svn: 271911
2016-06-06 17:23:37 +00:00
Mike Spertus 603bbfca10 Better Visual Studio visualization of TemplateArgument and TemplateArgumentList
For pack TemplateArguments, visualize all of the items in the pack
Visualize a TemplateArgumentList as a template argument list. E.g., <int, double>

llvm-svn: 271910
2016-06-06 17:08:32 +00:00
Devin Coughlin cc73e62ebe Revert "[analyzer] Add checker for correct usage of MPI API in C and C++."
This reverts commit r271907. It broke a bunch of bots with compile errors
about specializations in different namespaces.

llvm-svn: 271909
2016-06-06 17:01:08 +00:00
Devin Coughlin 83ccd1a994 [analyzer] Add checker for correct usage of MPI API in C and C++.
This commit adds a static analysis checker to check for the correct usage of the
MPI API in C and C++.

3 path-sensitive checks are included:

- Double nonblocking: Double request usage by nonblocking calls
  without intermediate wait.
- Missing wait: Nonblocking call without matching wait.
- Unmatched wait: Waiting for a request that was never used by a
  nonblocking call.

Examples of how to use the checker can be found
at https://github.com/0ax1/MPI-Checker

Reviewers: zaks.anna

A patch by Alexander Droste!

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

llvm-svn: 271907
2016-06-06 16:47:16 +00:00
Vedant Kumar 62baa4c752 [docs] Clarify limitations section of SourceBasedCodeCoverage.rst
Mention that the code coverage tool becomes less precise whenever
unpredictable changes in control flow occur.

Thanks to Sean Silva for pointing this out!

llvm-svn: 271902
2016-06-06 15:44:40 +00:00
Joerg Sonnenberger e27aec9f4a Give FileCheck a hint on which ld to match. Under Windows, the preferred
match was the ld.elf_so that should be matched in a second step. Add one
of the ever-present-but-irrelevant-for-this-test arguments to the
pattern to force matching the right argument.

llvm-svn: 271893
2016-06-06 13:13:12 +00:00
Daniel Sanders 0ca86fe84d [mips] The default ABI depends on the CPU not the Arch on MTI and IMG vendor triples.
Summary:
32-bit CPU's default to O32. 64-bit CPU's default to N64. The default CPU
(mips32r2/mips64r2) still depends on the arch so there's no functional
change when the CPU isn't specified but commands like:
  clang -target mips-mti-linux-gnu -mips64r2
will now default to a 64-bit ABI like our gcc toolchains do* instead of
asserting in the backend**.

Other vendors (including Triple::UnknownVendor) still derive the default
ABI from the arch.

* Although not the same one as our gcc toolchains, clang has historically
  defaulted to N64 where gcc defaults to N32.
** Mixing O32 and a 64-bit CPU causing assertions is a long-standing bug.

Reviewers: atanasyan

Subscribers: sdardis, cfe-commits

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

llvm-svn: 271884
2016-06-06 12:02:21 +00:00
Eric Liu 3528832930 [clang-format] make header guard identification stricter (with Lexer).
Summary: make header guard identification stricter with Lexer.

Reviewers: djasper

Subscribers: klimek, cfe-commits

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

llvm-svn: 271883
2016-06-06 11:00:13 +00:00
Daniel Sanders 28d8637e25 [mips] The P5600 does not support N32/N64 since it's a 32-bit CPU.
Summary:

Reviewers: atanasyan

Subscribers: cfe-commits, sdardis

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

llvm-svn: 271877
2016-06-06 09:47:32 +00:00
Daniel Sanders 26a56adaea [mips] Replace almost all Arch checks in MipsTargetInfo with ABI checks. NFC.
Summary:
setABI() is still tied to the Arch component of the Triple to preserve existing
behaviour.

Reviewers: atanasyan

Subscribers: cfe-commits

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

llvm-svn: 271875
2016-06-06 09:07:08 +00:00
Craig Topper f51cc07719 [AVX512] Convert masked palignr builtins directly to native IR similar to the other palignr builtins, but with a select to handle masking.
llvm-svn: 271873
2016-06-06 06:13:01 +00:00
Mike Spertus ef8c308d69 Slightly improve Visual Studio visualization of clang::Expr
Now it gives the StmtClass of the Expr as well as the type. It's still
a long way from full visualization of expressions, but I have found
that having the class really helps when debugging, so definitely
worth submitting.

llvm-svn: 271866
2016-06-06 03:37:18 +00:00
Michael Zuckerman 1a7889f203 Fixing problem with rsqrt28_sd
maskz_rsqrt28_sd mapped to mask_rsqrt28_sd and not to the maskz.

llvm-svn: 271836
2016-06-05 15:57:49 +00:00
Michael Zuckerman 95721ac863 [Clang][AVX512]Adding set4 intrinsics
Differential Revision: http://reviews.llvm.org/D20866

llvm-svn: 271835
2016-06-05 15:43:30 +00:00
Michael Zuckerman f36f6eb036 [Clang][AVX512][Intrinsics] Adding two definitions _mm512_setzero and _mm512_setzero_epi32
Differential Revision: http://reviews.llvm.org/D20871

llvm-svn: 271832
2016-06-05 15:12:52 +00:00
NAKAMURA Takumi e222017dad check-clang: LTO, aka libLTO.so, was redundant here, since llvm-lto depends on it.
llvm-svn: 271818
2016-06-05 00:12:59 +00:00
Joerg Sonnenberger b8650ad024 Add PIE magic for NetBSD. Add tests for the correct flags for
non-shared, PIE and shared output mode.

llvm-svn: 271801
2016-06-04 20:03:26 +00:00
Craig Topper 4d302448ae [AVX512] Remove 512-bit andnot tests from the avx512vl test file.
llvm-svn: 271795
2016-06-04 16:37:38 +00:00
Craig Topper 6a77b62640 [X86] Use unsigned types for vector arithmetic in intrinsics to avoid undefined behavior for signed integer overflow.
This is really only needed for addition, subtraction, and multiplication, but I did the bitwise ops too for overall consistency. Clang currently doesn't set NSW for signed vector operations so the undefined behavior shouldn't happen today.

llvm-svn: 271778
2016-06-04 05:43:41 +00:00
Craig Topper 406d5cdf7c [AVX512] Remove space in -1 constants. NFC
llvm-svn: 271777
2016-06-04 05:43:37 +00:00
Saleem Abdulrasool ada78feb08 Sema: do not attempt to sizeof a dependent type
We would attempt to evaluate the sizeof a dependent type to check for an
integral overflow.  However, because the dependent type is not yet resolved, we
cannot determine if the expression would overflow.  Report a failure to perform
a symbolic evaluation of a constant involving the dependent type.

llvm-svn: 271762
2016-06-04 03:16:21 +00:00
Taewook Oh 1c1101bb33 Revert commit r271708
llvm-svn: 271761
2016-06-04 03:14:43 +00:00
Bruno Cardoso Lopes 4a52222c9d [Modules] Improve diagnostics for LockFileManager errors
Uses error message now provided by LockFileManager in LLVM r271755.

rdar://problem/26529101

llvm-svn: 271758
2016-06-04 01:13:22 +00:00
Richard Smith 3a09d8be7c PR27989: only enqueue binary operators into the data recursive int expression
evaluator if they are actually int expressions.

llvm-svn: 271754
2016-06-04 00:22:31 +00:00
Saleem Abdulrasool 7bae9adb08 CodeGen: correct assertion
The assertion added earlier was overly strict.  We need to strip the pointer
casts (as when constructing the GV).  Correct the types (Function or Variable).

llvm-svn: 271750
2016-06-03 23:26:30 +00:00
Manman Ren 400e4c34d3 Bump libclang API minor version after r271351.
Also use the next enum value for CXObjCPropertyAttr_class.

llvm-svn: 271747
2016-06-03 23:11:41 +00:00
Taewook Oh fc5d13d9b1 Use the name of the file on disk to issue a new diagnostic about non-portable #include and #import paths.
Differential Revision: http://reviews.llvm.org/D19843
Corresponding LLVM change: http://reviews.llvm.org/D19842

Patch by Eric Niebler

llvm-svn: 271708
2016-06-03 18:52:51 +00:00
Taewook Oh 96938d67b6 [Title] Revert test commit
Summary: Revert test commit

Trac Bug: #

Blame Rev:

Reviewed By:

Test Plan:

Revert Plan:

Database Impact:

Memcache Impact:

Other Notes:

EImportant:

- begin *PUBLIC* platform impact section -
Bugzilla: #
- end platform impact -

llvm-svn: 271702
2016-06-03 18:30:12 +00:00
Taewook Oh 6185a25ed2 Test commit
llvm-svn: 271701
2016-06-03 18:27:39 +00:00
Rafael Espindola 5ed89d4a01 Don't pass --build-id to ld by default.
We now have a cmake option to change the default: ENABLE_LINKER_BUILD_ID.

The reason is that build-id is fairly expensive, so we shouldn't impose
it in the regular edit/build cycle.

This is similar to gcc, that has an off by default --enable-linker-build-id
option.

llvm-svn: 271692
2016-06-03 17:26:16 +00:00
Ismail Donmez afe3bea4dc Fix test for LLVM_LIBDIR_SUFFIX=64 case.
llvm-svn: 271689
2016-06-03 17:06:52 +00:00
Hans Wennborg 7c09cc67aa Obj-C: Fix assert-on-invalid (PR27822)
Clang would assert when isObjCInstancetype() was called on a
tok::annot_cxxscope token.

llvm-svn: 271688
2016-06-03 16:59:13 +00:00
Sjoerd Meijer ba7a16ff33 RAS extensions are part of ARMv8.2.
This patch enables +ras +noras to AArch64 in clang.

Patch by: Roger Ferrer Ibanez and Oliver Stannard

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

llvm-svn: 271672
2016-06-03 14:08:20 +00:00
Eric Liu 303baf53b1 [clang-format] skip empty lines and comments in the top of the code when inserting new headers.
Summary:
[clang-format] skip empty lines and comments in the top of the code when inserting new headers.

Pair-programmed with @hokein

Reviewers: djasper

Subscribers: ioeric, cfe-commits, hokein, klimek

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

llvm-svn: 271664
2016-06-03 12:52:59 +00:00