]> granicus.if.org Git - clang/log
clang
6 years agoImprove diagnostic for missing comma in template parameter list.
Richard Smith [Fri, 17 Aug 2018 19:43:40 +0000 (19:43 +0000)]
Improve diagnostic for missing comma in template parameter list.

Given 'typename T typename U', we would correctly diagnose the missing
comma, but incorrectly disambiguate the first parameter as being a
non-type parameter and complain that the 'T' is not a qualified-id.

See also gcc.gnu.org/PR86998.

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

6 years ago[HIP] Make __hip_gpubin_handle hidden to avoid being merged across different shared...
Yaxun Liu [Fri, 17 Aug 2018 17:47:31 +0000 (17:47 +0000)]
[HIP] Make __hip_gpubin_handle hidden to avoid being merged across different shared libraries

Different shared libraries contain different fat binary, which is stored in a global variable
__hip_gpubin_handle. Since different compilation units share the same fat binary, this
variable has linkonce linkage. However, it should not be merged across different shared
libraries.

This patch set the visibility of the global variable to be hidden, which will make it invisible
in the shared library, therefore preventing it from being merged.

Differential Revision: https://reviews.llvm.org/D50596

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

6 years agoMake __shiftleft128 / __shiftright128 real compiler built-ins.
Nico Weber [Fri, 17 Aug 2018 17:19:06 +0000 (17:19 +0000)]
Make __shiftleft128 / __shiftright128 real compiler built-ins.

r337619 added __shiftleft128 / __shiftright128 as functions in intrin.h.
Microsoft's STL plans on using these functions, and they're using intrin0.h
which just has declarations of built-ins to not pull in the huge intrin.h
header in the standard library headers. That requires that these functions are
real built-ins.

https://reviews.llvm.org/D50907

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

6 years ago[CodeGen] Merge identical block descriptor global variables.
Akira Hatanaka [Fri, 17 Aug 2018 15:46:07 +0000 (15:46 +0000)]
[CodeGen] Merge identical block descriptor global variables.

Currently, clang generates a new block descriptor global variable for
each new block literal. This commit merges block descriptors that are
identical inside and across translation units using the same approach
taken in r339438.

To enable merging identical block descriptors, the size and signature of
the block and information about the captures are encoded into the name
of the block descriptor variable. Also, the block descriptor variable is
marked as linkonce_odr and unnamed_addr.

rdar://problem/42640703

Differential Revision: https://reviews.llvm.org/D50783

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

6 years ago[Preamble] Empty preamble is not an error.
Haojian Wu [Fri, 17 Aug 2018 14:25:10 +0000 (14:25 +0000)]
[Preamble] Empty preamble is not an error.

Summary:
Empty preamble is valid for source file which doesn't have any
preprocessor and #includes.

This patch makes clang treat an empty preamble as a normal preamble.

Check: ninja check-clang

A testcase is added in https://reviews.llvm.org/D50627.

Reviewers: ilya-biryukov

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D50628

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

6 years agoFix for bug 38508 - Don't do PCH processing when only generating preprocessor output
Erich Keane [Fri, 17 Aug 2018 13:43:39 +0000 (13:43 +0000)]
Fix for bug 38508 - Don't do PCH processing when only generating preprocessor output

This clang-cl driver change removes the PCH options when we are only generating
preprocessed output. This is similar to the behavior of Y-.

Patch by: mikerice
Differential Revision: https://reviews.llvm.org/D50640

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

6 years agoclang-cl: Expose -fno-crash-diagnostics (PR38574)
Hans Wennborg [Fri, 17 Aug 2018 13:37:57 +0000 (13:37 +0000)]
clang-cl: Expose -fno-crash-diagnostics (PR38574)

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

6 years ago[ThinLTO] Correct documentation on default number of threads
Teresa Johnson [Fri, 17 Aug 2018 13:19:36 +0000 (13:19 +0000)]
[ThinLTO] Correct documentation on default number of threads

Summary:
The number of threads used for ThinLTO backend parallelism was
dropped to the number of cores in r284618 to avoid oversubscribing
physical cores due to hyperthreading. This updates the documentation
to reflect that change.

Fixes PR38610.

Reviewers: pcc

Subscribers: mehdi_amini, inglorion, eraman, steven_wu, dexonsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D50882

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

6 years ago[AArch64] - return address signing
Luke Cheeseman [Fri, 17 Aug 2018 12:55:05 +0000 (12:55 +0000)]
[AArch64] - return address signing

- Add a command line options -msign-return-address to enable return address
  signing
- Armv8.3a added instructions to sign the return address to help mitigate
  against ROP attacks
- This patch adds command line options to generate function attributes that
  signal to the back whether return address signing instructions should be
  added

Differential revision: https://reviews.llvm.org/D49793

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

6 years ago[NFC] Some small test updates for Implicit Conversion sanitizer.
Roman Lebedev [Fri, 17 Aug 2018 07:33:25 +0000 (07:33 +0000)]
[NFC] Some small test updates for Implicit Conversion sanitizer.

Split off from D50250.

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

6 years ago[hexagon] restore -fuse-cxa-atexit by default
Brian Cain [Fri, 17 Aug 2018 03:53:51 +0000 (03:53 +0000)]
[hexagon] restore -fuse-cxa-atexit by default

"-fno-use-cxa-atexit" was a default provided by the initial
commit offering hexagon support.  This is no longer required.

Reviewers: bcahoon, sidneym

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D50816

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

6 years agoDisable pubnames in NVPTX debug info using metadata
David Blaikie [Thu, 16 Aug 2018 23:56:32 +0000 (23:56 +0000)]
Disable pubnames in NVPTX debug info using metadata

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

6 years agoRelax a CHECK line to allow for dso_local
Vedant Kumar [Thu, 16 Aug 2018 23:19:50 +0000 (23:19 +0000)]
Relax a CHECK line to allow for dso_local

Fixes a bot failure:
http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/11806

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

6 years ago[InstrProf] Use atomic profile counter updates for TSan
Vedant Kumar [Thu, 16 Aug 2018 22:24:47 +0000 (22:24 +0000)]
[InstrProf] Use atomic profile counter updates for TSan

Thread sanitizer instrumentation fails to skip all loads and stores to
profile counters. This can happen if profile counter updates are merged:

  %.sink = phi i64* ...
  %pgocount5 = load i64, i64* %.sink
  %27 = add i64 %pgocount5, 1
  %28 = bitcast i64* %.sink to i8*
  call void @__tsan_write8(i8* %28)
  store i64 %27, i64* %.sink

To suppress TSan diagnostics about racy counter updates, make the
counter updates atomic when TSan is enabled. If there's general interest
in this mode it can be surfaced as a clang/swift driver option.

Testing: check-{llvm,clang,profile}

rdar://40477803

Differential Revision: https://reviews.llvm.org/D50867

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

6 years agoUpdate for LLVM API change
David Blaikie [Thu, 16 Aug 2018 21:30:24 +0000 (21:30 +0000)]
Update for LLVM API change

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

6 years agoAMDGPU: Correct errors in device table
Matt Arsenault [Thu, 16 Aug 2018 20:19:47 +0000 (20:19 +0000)]
AMDGPU: Correct errors in device table

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

6 years agoUpdate README and Dockerfile to include llvm-proto-fuzzer
Emmett Neyman [Thu, 16 Aug 2018 20:13:40 +0000 (20:13 +0000)]
Update README and Dockerfile to include llvm-proto-fuzzer

Summary: Added commands to Dockerfile to build llvm-proto-fuzzer and the other related tools. Also added a section to the bottom of the README describing what llvm-proto-fuzzer does and how to run it.

Reviewers: morehouse, kcc

Reviewed By: morehouse

Subscribers: cfe-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D50829

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

6 years ago[ASTImporter] Add test for member pointer types.
Raphael Isemann [Thu, 16 Aug 2018 18:22:21 +0000 (18:22 +0000)]
[ASTImporter] Add test for member pointer types.

Reviewers: a.sidorin, martong

Reviewed By: martong

Subscribers: rnkovacs, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50792

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

6 years ago[ASTImporter] Add test for importing CompoundAssignOperators
Raphael Isemann [Thu, 16 Aug 2018 18:21:33 +0000 (18:21 +0000)]
[ASTImporter] Add test for importing CompoundAssignOperators

Reviewers: a.sidorin, martong

Reviewed By: martong

Subscribers: rnkovacs, cfe-commits, martong

Differential Revision: https://reviews.llvm.org/D50793

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

6 years ago[ASTImporter] Add test for DoStmt
Raphael Isemann [Thu, 16 Aug 2018 18:20:52 +0000 (18:20 +0000)]
[ASTImporter] Add test for DoStmt

Reviewers: a.sidorin, martong

Reviewed By: martong

Subscribers: rnkovacs, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50810

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

6 years ago[ASTImporter] Add test for WhileStmt
Raphael Isemann [Thu, 16 Aug 2018 18:20:05 +0000 (18:20 +0000)]
[ASTImporter] Add test for WhileStmt

Reviewers: a.sidorin, martong

Reviewed By: martong

Subscribers: rnkovacs, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50811

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

6 years ago[ASTImporter] Add test for IndirectGotoStmt
Raphael Isemann [Thu, 16 Aug 2018 18:19:21 +0000 (18:19 +0000)]
[ASTImporter] Add test for IndirectGotoStmt

Reviewers: a.sidorin, martong

Reviewed By: martong

Subscribers: rnkovacs, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50813

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

6 years ago[AST] Store the OwnedTagDecl as a trailing object in ElaboratedType.
Bruno Ricci [Thu, 16 Aug 2018 10:48:16 +0000 (10:48 +0000)]
[AST] Store the OwnedTagDecl as a trailing object in ElaboratedType.

The TagDecl *OwnedTagDecl in ElaboratedType is quite commonly
null (at least when parsing all of Boost, it is non-null for only about 600
of the 66k ElaboratedType). Therefore we can save a pointer in the
common case by storing it as a trailing object, and storing a bit in the
bit-fields of Type indicating when the pointer is null.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D50715

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

6 years ago[AST] Pack the unsigned of SubstTemplateTypeParmPackType into Type
Bruno Ricci [Thu, 16 Aug 2018 10:33:36 +0000 (10:33 +0000)]
[AST] Pack the unsigned of SubstTemplateTypeParmPackType into Type

The bit-fields of Type have enough space for the member
unsigned NumArgs of SubstTemplateTypeParmPackType.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50713

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

6 years ago[AST] Pack the unsigned of DependentTemplateSpecializationType into Type
Bruno Ricci [Thu, 16 Aug 2018 10:28:18 +0000 (10:28 +0000)]
[AST] Pack the unsigned of DependentTemplateSpecializationType into Type

The bit-fields of `Type` have enough space for the member
`unsigned NumArgs` of `DependentTemplateSpecializationType`.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50712

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

6 years ago[X86] Remove masking from the 512-bit paddus/psubus builtins. Use a select builtin...
Craig Topper [Thu, 16 Aug 2018 07:28:06 +0000 (07:28 +0000)]
[X86] Remove masking from the 512-bit paddus/psubus builtins. Use a select builtin instead.

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

6 years ago[X86] Remove masking from the 512-bit padds and psubs builtins. Use select builtin...
Craig Topper [Thu, 16 Aug 2018 06:20:29 +0000 (06:20 +0000)]
[X86] Remove masking from the 512-bit padds and psubs builtins. Use select builtin instead.

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

6 years ago[ASTImporter] Add test for CXXDefaultInitExpr
Raphael Isemann [Thu, 16 Aug 2018 01:37:43 +0000 (01:37 +0000)]
[ASTImporter] Add test for CXXDefaultInitExpr

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: a_sidorin, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50732

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

6 years ago[ASTImporter] Add test for CXXScalarValueInit
Raphael Isemann [Thu, 16 Aug 2018 01:36:37 +0000 (01:36 +0000)]
[ASTImporter] Add test for CXXScalarValueInit

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50735

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

6 years ago[ASTImporter] Add test for ForStmt and ContinueStmt
Raphael Isemann [Thu, 16 Aug 2018 01:35:47 +0000 (01:35 +0000)]
[ASTImporter] Add test for ForStmt and ContinueStmt

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50812

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

6 years ago[Driver] -print-target-triple and -print-effective-triple options
Petr Hosek [Thu, 16 Aug 2018 00:22:03 +0000 (00:22 +0000)]
[Driver] -print-target-triple and -print-effective-triple options

These can be used to print Clang target and effective triple.

Differential Revision: https://reviews.llvm.org/D50755

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

6 years agoImplementation of nested loops in cxx_loop_proto
Emmett Neyman [Wed, 15 Aug 2018 23:05:48 +0000 (23:05 +0000)]
Implementation of nested loops in cxx_loop_proto

Summary: Extended `cxx_loop_proto` to have neste for loops. Modified `loop_proto_to_llvm` and `loop_proto_to_cxx` to handle the new protos. All protos have a set of statements designated as "inner loop" statements and a set of statements designated as "outer loop" statements.

Reviewers: morehouse, kcc

Reviewed By: morehouse

Subscribers: cfe-commits, llvm-commits

Differential Revision: https://reviews.llvm.org/D50670

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

6 years ago[ASTImporter] Add test for ArrayInitLoopExpr
Raphael Isemann [Wed, 15 Aug 2018 22:52:21 +0000 (22:52 +0000)]
[ASTImporter] Add test for ArrayInitLoopExpr

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50733

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

6 years ago[ASTImporter] Add test for ExprWithCleanups
Raphael Isemann [Wed, 15 Aug 2018 22:51:37 +0000 (22:51 +0000)]
[ASTImporter] Add test for ExprWithCleanups

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: a_sidorin, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50731

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

6 years ago[Darwin Driver] Fix Simulator builtins and test cases
Chris Bieneman [Wed, 15 Aug 2018 22:50:06 +0000 (22:50 +0000)]
[Darwin Driver] Fix Simulator builtins and test cases

In r339807, I broke linking the builtins libraries for simulator targets, which itself was bad, but turns out it was all completely untested and marked with FIXME in the test suite.

This fixes all the test cases so they actually work, and fixes the bug I introduced in r339807.

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

6 years ago[ASTImporter] Add test for IfStmt
Raphael Isemann [Wed, 15 Aug 2018 22:36:58 +0000 (22:36 +0000)]
[ASTImporter] Add test for IfStmt

Reviewers: a.sidorin, hiraditya

Reviewed By: hiraditya

Subscribers: hiraditya, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50796

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

6 years agoAdd a newline to SourceLocation dump output
Stephen Kelly [Wed, 15 Aug 2018 20:32:06 +0000 (20:32 +0000)]
Add a newline to SourceLocation dump output

Summary:
Migrate callers to print().

dump() should be useful to downstreams and third parties as a debugging
aid.  Everyone trips up on this and creates confusing output.

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D50661

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

6 years ago[CStringSyntaxChecker] Reduces space around error message for strlcat.
David Carlier [Wed, 15 Aug 2018 20:09:52 +0000 (20:09 +0000)]
[CStringSyntaxChecker] Reduces space around error message for strlcat.

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

6 years agoRefactor Darwin driver to refer to runtimes by component
Chris Bieneman [Wed, 15 Aug 2018 20:09:38 +0000 (20:09 +0000)]
Refactor Darwin driver to refer to runtimes by component

Summary:
In r335809, Petr Hosek lays out support for what he calls the multiarch
runtimes layout. This new way of laying out the directories for runtime
libraries is workable for all platforms. Petr did some of the common
infrastructure and made it work for Linux and Fuscia. This patch is a
cleanup to the Darwin and MachO drivers to serve as a step toward
supporting it in Darwin.

This patch does primarily two things:
(1) Changes the APIs for how the Darwin driver refers to compiler-rt
libraries to use the component names, similar to how Linux and Fuscia do

(2) Removes some legacy functionality for supporting macOS versions
before 10.6. This functionality is effectively dead code because in
r339277, the support was removed from compiler-rt for generating the 10.4
runtime support library, and Xcode 10 (currently in beta) removes
libgcc_s.10.4 and libgcc_s.10.5 from the macOS SDK.

With this patch landed a subsequent patch can modify
MachO::AddLinkRuntimeLib to support the multiarch runtimes layout.

Worth noting: None of the removed functionality was actually covered in
the test suite. So no test case updates are required.

Reviewers: phosek, bruno, arphaman

Reviewed By: phosek, arphaman

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D50618

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

6 years ago[OPENMP] FIx processing of declare target variables.
Alexey Bataev [Wed, 15 Aug 2018 19:45:12 +0000 (19:45 +0000)]
[OPENMP] FIx processing of declare target variables.

The compiler may produce unexpected error messages/crashes when declare
target variables were used. Patch fixes problems with the declarations
marked as declare target to or link.

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

6 years agoclang-format: Change Google style wrt. the formatting of empty messages.
Daniel Jasper [Wed, 15 Aug 2018 19:07:55 +0000 (19:07 +0000)]
clang-format: Change Google style wrt. the formatting of empty messages.

Before:
  message Empty {
  }

After:
  message Empty {}

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

6 years ago[AST] Pack the unsigned of PackExpansionType into Type
Bruno Ricci [Wed, 15 Aug 2018 16:28:58 +0000 (16:28 +0000)]
[AST] Pack the unsigned of PackExpansionType into Type

The bit-fields of `Type` have enough space for
the `unsigned NumExpansions` of `PackExpansionType`

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50711

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

6 years ago[AST] Pack the bits of TemplateSpecializationType into Type
Bruno Ricci [Wed, 15 Aug 2018 16:21:17 +0000 (16:21 +0000)]
[AST] Pack the bits of TemplateSpecializationType into Type

Type has enough space for two members of
TemplateSpecializationType. Mechanical patch.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50643

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

6 years agoUse .cpp extension for certain tests instead of .cc
Momchil Velikov [Wed, 15 Aug 2018 12:22:08 +0000 (12:22 +0000)]
Use .cpp extension for certain tests instead of .cc

The tests `CodeGen/aapcs[64]-align.cc` are not run since files with a `.cc`
suffix aren't recognisze as tests. This patch renames the above two files to
`.cpp`.

Differential Revision: https://reviews.llvm.org/D46013

Comitting as obvious.

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

6 years agoFix ASTMatchersTraversalTest testcase compile on older compilers
David Green [Wed, 15 Aug 2018 10:39:43 +0000 (10:39 +0000)]
Fix ASTMatchersTraversalTest testcase compile on older compilers

Some versions of gcc, especially when invoked through ccache (-E), can have
trouble with raw string literals inside macros. This moves the string out of
the macro.

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

6 years agoSilence "unused variable" warning.
Richard Smith [Wed, 15 Aug 2018 01:06:30 +0000 (01:06 +0000)]
Silence "unused variable" warning.

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

6 years ago[analyzer] Add support for constructors of arguments.
Artem Dergachev [Wed, 15 Aug 2018 00:33:55 +0000 (00:33 +0000)]
[analyzer] Add support for constructors of arguments.

Once CFG-side support for argument construction contexts landed in r338436,
the analyzer could make use of them to evaluate argument constructors properly.

When evaluated as calls, constructors of arguments now use the variable region
of the parameter as their target. The corresponding stack frame does not yet
exist when the parameter is constructed, and this stack frame is created
eagerly.

Construction of functions whose body is unavailable and of virtual functions
is not yet supported. Part of the reason is the analyzer doesn't consistently
use canonical declarations o identify the function in these cases, and every
re-declaration or potential override comes with its own set of parameter
declarations. Also it is less important because if the function is not
inlined, there's usually no benefit in inlining the argument constructor.

Differential Revision: https://reviews.llvm.org/D49443

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

6 years agoRemove obsolete comment
Stephen Kelly [Tue, 14 Aug 2018 21:34:29 +0000 (21:34 +0000)]
Remove obsolete comment

This related to the code as first checked in in r266292 ([ASTImporter]
Implement some expression-related AST node import., 2016-04-14).

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

6 years agoFix Stmt::ignoreImplicit
Stephen Kelly [Tue, 14 Aug 2018 21:33:28 +0000 (21:33 +0000)]
Fix Stmt::ignoreImplicit

Summary:
A CXXBindTemporaryExpr can appear inside an ImplicitCastExpr, and was
not ignored previously.

Fixes the case reported in PR37327.

Reviewers: rsmith, dblaikie, klimek

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D50666

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

6 years agoFix lit fatal errors about requiring a USE_Z3_SOLVER param
Reid Kleckner [Tue, 14 Aug 2018 21:15:57 +0000 (21:15 +0000)]
Fix lit fatal errors about requiring a USE_Z3_SOLVER param

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

6 years ago[CFG] [analyzer] Find argument constructors in CXXTemporaryObjectExprs.
Artem Dergachev [Tue, 14 Aug 2018 21:10:46 +0000 (21:10 +0000)]
[CFG] [analyzer] Find argument constructors in CXXTemporaryObjectExprs.

CXXTemporaryObjectExpr is a sub-class of CXXConstructExpr. If it has arguments
that are structures passed by value, their respective constructors need to be
handled by providing a ConstructionContext, like for regular function calls and
for regular constructors.

Differential Revision: https://reviews.llvm.org/D50487

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

6 years ago[analyzer] Add a test forgotten in r339088.
Artem Dergachev [Tue, 14 Aug 2018 21:06:30 +0000 (21:06 +0000)]
[analyzer] Add a test forgotten in r339088.

Differential Revision: https://reviews.llvm.org/D50363

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

6 years ago[InlineAsm] Update the min-legal-vector-width function attribute based on inputs...
Craig Topper [Tue, 14 Aug 2018 20:21:05 +0000 (20:21 +0000)]
[InlineAsm] Update the min-legal-vector-width function attribute based on inputs and outputs to inline assembly

Summary:
Another piece of my ongoing to work for prefer-vector-width.

min-legal-vector-width will eventually be used by the X86 backend to know whether it needs to make 512 bits type legal when prefer-vector-width=256. If the user used inline assembly that passed in/out a 512-bit register, we need to make sure 512 bits are considered legal. Otherwise we'll get an assert failure when we try to wire up the inline assembly to the rest of the code.

This patch just checks the LLVM IR types to see if they are vectors and then updates the attribute based on their total width. I'm not sure if this is the best way to do this or if there's any subtlety I might have missed. So if anyone has other opinions on how to do this I'm open to suggestions.

Reviewers: chandlerc, rsmith, rnk

Reviewed By: rnk

Subscribers: eraman, cfe-commits

Differential Revision: https://reviews.llvm.org/D50678

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

6 years agoSafeStack: Disable Darwin support
Vlad Tsyrklevich [Tue, 14 Aug 2018 19:50:41 +0000 (19:50 +0000)]
SafeStack: Disable Darwin support

Summary:
Darwin support does not appear to be used as evidenced by the fact that
the runtime has never supported non-trivial programs.

Reviewers: pcc, kubamracek

Reviewed By: pcc

Subscribers: cfe-commits, kcc

Differential Revision: https://reviews.llvm.org/D50724

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

6 years ago[analyzer] Fix bots by removing new check-clang-analyzer commands from CHECK-ALL
George Karpenkov [Tue, 14 Aug 2018 18:55:34 +0000 (18:55 +0000)]
[analyzer] Fix bots by removing new check-clang-analyzer commands from CHECK-ALL

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

6 years ago[OPENMP] Fix processing of declare target construct.
Alexey Bataev [Tue, 14 Aug 2018 18:31:20 +0000 (18:31 +0000)]
[OPENMP] Fix processing of declare target construct.

The attribute marked as inheritable since OpenMP 5.0 supports it +
additional fixes to support new functionality.

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

6 years agoWe have in place support for parsing #pragma FENV_ACCESS, but that
Kevin P. Neal [Tue, 14 Aug 2018 17:06:56 +0000 (17:06 +0000)]
We have in place support for parsing #pragma FENV_ACCESS, but that
information is then discarded with a warning to the user that we don't
support it.

This patch gets us one step closer by getting the info down into the
AST in most cases.

Reviewed by: rsmith
Differential Revision: https://reviews.llvm.org/D49865

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

6 years agoRevert test commit
Kevin P. Neal [Tue, 14 Aug 2018 16:57:10 +0000 (16:57 +0000)]
Revert test commit

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

6 years agoTest commit
Kevin P. Neal [Tue, 14 Aug 2018 16:56:25 +0000 (16:56 +0000)]
Test commit

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

6 years ago[OpenCL] Add test for constant sampler argument
Sven van Haastregt [Tue, 14 Aug 2018 13:56:52 +0000 (13:56 +0000)]
[OpenCL] Add test for constant sampler argument

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

6 years ago[gnu-objc] Make selector order deterministic.
David Chisnall [Tue, 14 Aug 2018 10:05:25 +0000 (10:05 +0000)]
[gnu-objc] Make selector order deterministic.

Summary:
This probably fixes PR35277, though there may be other sources of
nondeterminism (this was the only case of iterating over a DenseMap).

It's difficult to provide a test case for this, because it shows up only
on systems with ASLR enabled.

Reviewers: rjmccall

Reviewed By: rjmccall

Subscribers: bmwiedemann, mgrang, cfe-commits

Differential Revision: https://reviews.llvm.org/D50559

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

6 years agoAdd a stub mangling for ObjC selectors in the Microsoft ABI.
David Chisnall [Tue, 14 Aug 2018 10:04:36 +0000 (10:04 +0000)]
Add a stub mangling for ObjC selectors in the Microsoft ABI.

This mangling is used only for outlined SEH finally blocks, which have
internal linkage.

This fixes the failure of CodeGenObjC/2007-04-03-ObjcEH.m on builds with
expensive checks enabled, on Windows.  This test should probably be
specifying a triple: it currently picks up whatever the host environment
is using.  Unfortunately, I have no idea what it is trying to test,
because it contains no comments and predates Clang having working
Objective-C IR generation.

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

6 years ago[XRay][clang] Add more test cases of -fxray-modes= (NFC)
Dean Michael Berris [Tue, 14 Aug 2018 09:16:37 +0000 (09:16 +0000)]
[XRay][clang] Add more test cases of -fxray-modes= (NFC)

This confirms expectations for multiple values provided through the
driver when selecting specific modes and the order of appearance of
individual values for the `-fxray-modes=` flag.

This change just adds more test cases to an existing test file.

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

6 years ago[analyzer] Made a buildbot happy.
Kristof Umann [Tue, 14 Aug 2018 08:38:35 +0000 (08:38 +0000)]
[analyzer] Made a buildbot happy.

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

6 years ago[analyzer][UninitializedObjectChecker] Void pointers are casted back to their dynamic...
Kristof Umann [Tue, 14 Aug 2018 08:20:51 +0000 (08:20 +0000)]
[analyzer][UninitializedObjectChecker] Void pointers are casted back to their dynamic type in note message

Differential Revision: https://reviews.llvm.org/D49228

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

6 years ago[X86] Lowering addus/subus intrinsics to native IR
Tomasz Krupa [Tue, 14 Aug 2018 08:01:38 +0000 (08:01 +0000)]
[X86] Lowering addus/subus intrinsics to native IR

Summary: This is the patch that lowers x86 intrinsics to native IR in order to enable optimizations.

Reviewers: craig.topper, spatel, RKSimon

Reviewed By: craig.topper

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D46892

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

6 years ago[CStringSyntaxChecker] Check strlcat sizeof check
David Carlier [Tue, 14 Aug 2018 05:12:53 +0000 (05:12 +0000)]
[CStringSyntaxChecker] Check strlcat sizeof check

- Assuming strlcat is used with strlcpy we check as we can if the last argument does not equal os not larger than the buffer.
- Advising the proper usual pattern.

Reviewers: NoQ, george.karpenkov

Reviewed By: george.karpenkov

Differential Revision: https://reviews.llvm.org/D49722

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

6 years agoRevert r339623 "Model type attributes as regular Attrs."
Reid Kleckner [Tue, 14 Aug 2018 01:55:37 +0000 (01:55 +0000)]
Revert r339623 "Model type attributes as regular Attrs."

This breaks compiling atlwin.h in Chromium. I'm sure the code is invalid
in some way, but we put a lot of work into accepting it, and I'm sure
rejecting it was not an intended consequence of this refactoring. :)

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

6 years agoMove test inputs into Inputs directory.
Richard Smith [Tue, 14 Aug 2018 00:18:48 +0000 (00:18 +0000)]
Move test inputs into Inputs directory.

We don't need a new ExpectedOutputs/ convention. Expected outputs are
just another form of test input.

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

6 years ago[CodeGen] Before returning a copy/dispose helper function, bitcast it to
Akira Hatanaka [Tue, 14 Aug 2018 00:15:42 +0000 (00:15 +0000)]
[CodeGen] Before returning a copy/dispose helper function, bitcast it to
a void pointer type.

This fixes a bug introduced in r339438.

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

6 years agoFix check strings in test/CodeGenObjC/arc-blocks.m in preperation for
Akira Hatanaka [Tue, 14 Aug 2018 00:15:41 +0000 (00:15 +0000)]
Fix check strings in test/CodeGenObjC/arc-blocks.m in preperation for
fixing a bug introduced in r339438.

Check the descriptor global variables in the IR at both -O0 and -O2.

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

6 years ago[analyzer] Fix UninitializedObjectChecker to not crash on uninitialized "id" fields
George Karpenkov [Mon, 13 Aug 2018 23:32:15 +0000 (23:32 +0000)]
[analyzer] Fix UninitializedObjectChecker to not crash on uninitialized "id" fields

Differential Revision: https://reviews.llvm.org/D50673

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

6 years ago[analyzer] [NFC] Introduce separate targets for testing the analyzer: check-clang...
George Karpenkov [Mon, 13 Aug 2018 23:12:43 +0000 (23:12 +0000)]
[analyzer] [NFC] Introduce separate targets for testing the analyzer: check-clang-analyzer and check-clang-analyzer-z3

Current testing setup for analyzer tests with Z3 is rather inconvenient:

There's no way to run the analyzer tests separately (I use
LIT_FILTER=Analysis ninja check-clang, but a direct target is nicer).

When Clang is built with Z3 support, there's no way to *not* run tests
with Z3 solver, and this is often desired, as tests with Z3 solver take
a very long time.

This patch introduces two extra targets:

 - check-clang-analyzer
 - check-clang-analyzer-z3

which solve those problems.

Differential Revision: https://reviews.llvm.org/D50594

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

6 years agoFix Clang warnings and bad #include filenames in r339595 and r339599.
Richard Smith [Mon, 13 Aug 2018 22:07:11 +0000 (22:07 +0000)]
Fix Clang warnings and bad #include filenames in r339595 and r339599.

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

6 years agoModel type attributes as regular Attrs.
Richard Smith [Mon, 13 Aug 2018 22:07:09 +0000 (22:07 +0000)]
Model type attributes as regular Attrs.

Specifically, AttributedType now tracks a regular attr::Kind rather than
having its own parallel Kind enumeration, and AttributedTypeLoc now
holds an Attr* instead of holding an ad-hoc collection of Attr fields.

Differential Revision: https://reviews.llvm.org/D50526

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

6 years agoConvert if/else to a switch. NFC.
Akira Hatanaka [Mon, 13 Aug 2018 20:59:57 +0000 (20:59 +0000)]
Convert if/else to a switch. NFC.

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

6 years ago[OPENMP] Fix emission of the loop doacross constructs.
Alexey Bataev [Mon, 13 Aug 2018 19:04:24 +0000 (19:04 +0000)]
[OPENMP] Fix emission of the loop doacross constructs.

The number of loops associated with the OpenMP loop constructs should
not be considered as the number loops to collapse.

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

6 years ago[analyzer][UninitializedObjectChecker] Refactoring p5.: Handle pedantic mode in the...
Kristof Umann [Mon, 13 Aug 2018 18:48:34 +0000 (18:48 +0000)]
[analyzer][UninitializedObjectChecker] Refactoring p5.: Handle pedantic mode in the checker class only

Differential Revision: https://reviews.llvm.org/D50508

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

6 years ago[analyzer][UninitializedObjectChecker] Refactoring p4.: Wrap FieldRegions and reduce...
Kristof Umann [Mon, 13 Aug 2018 18:43:08 +0000 (18:43 +0000)]
[analyzer][UninitializedObjectChecker] Refactoring p4.: Wrap FieldRegions and reduce weight on FieldChainInfo

Before this patch, FieldChainInfo used a spaghetti: it took care of way too many cases,
even though it was always meant as a lightweight wrapper around
ImmutableList<const FieldRegion *>.
This problem is solved by introducing a lightweight polymorphic wrapper around const
FieldRegion *, FieldNode. It is an interface that abstracts away special cases like
pointers/references, objects that need to be casted to another type for a proper note
messages.

Changes to FieldChainInfo:

  * Now wraps ImmutableList<const FieldNode &>.
  * Any pointer/reference related fields and methods were removed
  * Got a new add method. This replaces it's former constructors as a way to create a
    new FieldChainInfo objects with a new element.

Changes to FindUninitializedField:

  * In order not to deal with dynamic memory management, when an uninitialized field is
    found, the note message for it is constructed and is stored instead of a
    FieldChainInfo object. (see doc around addFieldToUninits).

Some of the test files are changed too, from now on uninitialized pointees of references
always print "uninitialized pointee" instead of "uninitialized field" (which should've
really been like this from the beginning).

I also updated every comment according to these changes.

Differential Revision: https://reviews.llvm.org/D50506

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

6 years agoEnforce instantiation of template multiversion functions
Erich Keane [Mon, 13 Aug 2018 18:33:20 +0000 (18:33 +0000)]
Enforce instantiation of template multiversion functions

Multiversioned member functions inside of a template type were
not properly being emitted.  The solution to this is to simply
ensure that their bodies are correctly evaluated/assigned during
template instantiation.

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

6 years ago[analyzer][UninitializedObjectChecker] Refactoring p3.: printTail moved out from...
Kristof Umann [Mon, 13 Aug 2018 18:22:22 +0000 (18:22 +0000)]
[analyzer][UninitializedObjectChecker] Refactoring p3.: printTail moved out from FieldChainInfo

This is a standalone part of the effort to reduce FieldChainInfos inteerface.

Differential Revision: https://reviews.llvm.org/D50505

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

6 years ago[analyzer][UninitializedObjectChecker] Refactoring p2.: Moving pointer chasing to...
Kristof Umann [Mon, 13 Aug 2018 18:17:05 +0000 (18:17 +0000)]
[analyzer][UninitializedObjectChecker] Refactoring p2.: Moving pointer chasing to a separate file

In this patch, the following classes and functions have been moved to a header file:

    FieldChainInfo
    FindUninitializedFields
    isPrimitiveType

This also meant that they moved from anonymous namespace to clang::ento.

Code related to pointer chasing now relies in its own file.

There's absolutely no functional change in this patch -- its literally just copy pasting.

Differential Revision: https://reviews.llvm.org/D50504

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

6 years ago[Sema] fix -Wfloat-conversion test case.
Nick Desaulniers [Mon, 13 Aug 2018 18:07:50 +0000 (18:07 +0000)]
[Sema] fix -Wfloat-conversion test case.

Summary:
Fixes r339581 ("[SEMA] add more -Wfloat-conversion to
compound assigment analysis").

This test case was caught in postsubmit testing.

Reviewers: aaron.ballman, gkistanova

Reviewed By: aaron.ballman

Subscribers: cfe-commits, srhines

Differential Revision: https://reviews.llvm.org/D50647

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

6 years ago[analyzer][UninitializedObjectChecker] Refactoring p1.: ImmutableList factory is...
Kristof Umann [Mon, 13 Aug 2018 17:55:52 +0000 (17:55 +0000)]
[analyzer][UninitializedObjectChecker] Refactoring p1.: ImmutableList factory is no longer static

This patch is the first part of a series of patches to refactor UninitializedObjectChecker. The goal of this effort is to

    Separate pointer chasing from the rest of the checker,
    Increase readability and reliability,
    Don't impact performance (too bad).

In this one, ImmutableList's factory is moved to FindUninitializedFields.

Differential Revision: https://reviews.llvm.org/D50503

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

6 years ago[AST] Update/correct the static_asserts for the bit-fields in Type
Bruno Ricci [Mon, 13 Aug 2018 16:40:57 +0000 (16:40 +0000)]
[AST] Update/correct the static_asserts for the bit-fields in Type

The current static_assert only checks that ObjCObjectTypeBitfields
fits into an unsigned. However it turns out that FunctionTypeBitfields
do not currently fits into an unsigned. Therefore the anonymous
union containing the bit-fields always use 8 bytes instead of 4.

This patch removes the lone misguided static_assert and systematically
checks the size of each bit-field.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D50630

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

6 years ago[SEMA] add more -Wfloat-conversion to compound assigment analysis
Nick Desaulniers [Mon, 13 Aug 2018 16:38:07 +0000 (16:38 +0000)]
[SEMA] add more -Wfloat-conversion to compound assigment analysis

Summary: Fixes Bug: https://bugs.llvm.org/show_bug.cgi?id=27061

Reviewers: aaron.ballman, acoomans

Reviewed By: aaron.ballman, acoomans

Subscribers: acoomans, cfe-commits, srhines, pirama

Differential Revision: https://reviews.llvm.org/D50467

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

6 years agoRevert "[OPENMP] Fix emission of the loop doacross constructs."
Alexey Bataev [Mon, 13 Aug 2018 14:42:18 +0000 (14:42 +0000)]
Revert "[OPENMP] Fix emission of the loop doacross constructs."

This reverts commit r339568 because of the problems with the buildbots.

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

6 years ago[clang-format] Fix comment, NFC
Krasimir Georgiev [Mon, 13 Aug 2018 14:32:29 +0000 (14:32 +0000)]
[clang-format] Fix comment, NFC

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

6 years agoSummary:Add clang::reinitializes attribute
Martin Bohme [Mon, 13 Aug 2018 14:11:03 +0000 (14:11 +0000)]
Summary:Add clang::reinitializes attribute

Summary:
This is for use by clang-tidy's bugprone-use-after-move check -- see
corresponding clang-tidy patch at https://reviews.llvm.org/D49910.

Reviewers: aaron.ballman, rsmith

Reviewed By: aaron.ballman

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D49911

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

6 years ago[OPENMP] Fix emission of the loop doacross constructs.
Alexey Bataev [Mon, 13 Aug 2018 14:05:43 +0000 (14:05 +0000)]
[OPENMP] Fix emission of the loop doacross constructs.

The number of loops associated with the OpenMP loop constructs should
not be considered as the number loops to collapse.

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

6 years ago[ASTImporter] Improved import of friend templates.
Balazs Keri [Mon, 13 Aug 2018 13:08:37 +0000 (13:08 +0000)]
[ASTImporter] Improved import of friend templates.

Summary:
When importing a friend class template declaration,
this declaration should not be merged with any other existing declaration
for the same type. Otherwise the getFriendDecl of the FriendDecl can point
to an other already referenced declaration, this case causes problems.
Additionally the previous decl of class templates is set at import.

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: a_sidorin, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50516

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

6 years agoRevert "Allow relockable scopes with thread safety attributes."
Haojian Wu [Mon, 13 Aug 2018 12:50:30 +0000 (12:50 +0000)]
Revert "Allow relockable scopes with thread safety attributes."

This reverts commit r339456.

The change introduces a new crash, see

class SCOPED_LOCKABLE FileLock {
 public:
  explicit FileLock()
      EXCLUSIVE_LOCK_FUNCTION(file_);
  ~FileLock() UNLOCK_FUNCTION(file_);
  void Lock() EXCLUSIVE_LOCK_FUNCTION(file_);
  Mutex file_;
};

void relockShared2() {
  FileLock file_lock;
  file_lock.Lock();
}

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

6 years ago[clang] Store code completion token range in preprocessor.
Kadir Cetinkaya [Mon, 13 Aug 2018 08:13:35 +0000 (08:13 +0000)]
[clang] Store code completion token range in preprocessor.

Summary:
This change is to support a new fature in clangd, tests will be send toclang-tools-extra with that change.

Unittests are included in: https://reviews.llvm.org/D50449

Reviewers: ilya-biryukov

Reviewed By: ilya-biryukov

Subscribers: ioeric, MaskRay, jkorous, arphaman, cfe-commits

Differential Revision: https://reviews.llvm.org/D50443

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

6 years ago[ASTMatchers] Let hasAnyArgument also support CXXUnresolvedConstructExpr
Shuai Wang [Sun, 12 Aug 2018 23:30:05 +0000 (23:30 +0000)]
[ASTMatchers] Let hasAnyArgument also support CXXUnresolvedConstructExpr

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D50605

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

6 years agoRenaming arg_const_range to const_arg_range; NFC.
Aaron Ballman [Sun, 12 Aug 2018 21:19:22 +0000 (21:19 +0000)]
Renaming arg_const_range to const_arg_range; NFC.

This form makes more sense (it is a range over constant arguments) and is most consistent with const_arg_iterator (there are zero instances of arg_const_iterator).

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

6 years ago[ASTMatchers] Add matchers unresolvedMemberExpr, cxxDependentScopeMemberExpr
Shuai Wang [Sun, 12 Aug 2018 17:34:36 +0000 (17:34 +0000)]
[ASTMatchers] Add matchers unresolvedMemberExpr, cxxDependentScopeMemberExpr

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D50606

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

6 years ago[ASTImporter] Added test case for opaque enums
Raphael Isemann [Sat, 11 Aug 2018 23:43:46 +0000 (23:43 +0000)]
[ASTImporter] Added test case for opaque enums

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: a_sidorin, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50550

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

6 years ago[ASTImporter] Added test case for CXXConversionDecl importing
Raphael Isemann [Sat, 11 Aug 2018 23:43:02 +0000 (23:43 +0000)]
[ASTImporter] Added test case for CXXConversionDecl importing

Reviewers: a.sidorin, a_sidorin

Reviewed By: a_sidorin

Subscribers: a_sidorin, martong, cfe-commits

Differential Revision: https://reviews.llvm.org/D50552

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

6 years agoMake the section boundary checks on Windows not depend on the order as they are emitt...
Douglas Yung [Sat, 11 Aug 2018 02:46:47 +0000 (02:46 +0000)]
Make the section boundary checks on Windows not depend on the order as they are emitted in reverse when the compiler is built by Visual C++.

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

6 years ago[analyzer] Fix keyboard navigation for .msgNote events
George Karpenkov [Sat, 11 Aug 2018 01:47:41 +0000 (01:47 +0000)]
[analyzer] Fix keyboard navigation for .msgNote events

Does not go to msgNote's.

Differential Revision: https://reviews.llvm.org/D50595

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