]> granicus.if.org Git - clang/log
clang
7 years agoUnguarded availability diagnoser should use TraverseStmt instead of
Alex Lorenz [Thu, 17 Aug 2017 14:22:27 +0000 (14:22 +0000)]
Unguarded availability diagnoser should use TraverseStmt instead of
Base::TraverseStmt when visiting the then/else branches of if statements

This ensures that the statement stack is correctly tracked and correct
multi-statement fixit is generated inside of an if (@available)

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

7 years agoPrint enum constant values using the original source formatting
Alex Lorenz [Thu, 17 Aug 2017 13:41:55 +0000 (13:41 +0000)]
Print enum constant values using the original source formatting
if possible when creating "Declaration" nodes in XML comments

rdar://14765746

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

7 years agoFix undefined behavior that is caused by not always initializing a bool.
Daniel Jasper [Thu, 17 Aug 2017 06:33:46 +0000 (06:33 +0000)]
Fix undefined behavior that is caused by not always initializing a bool.

The fix in r310994 is incomplete, as moveFromAndCancel can set the
pointer without initializing OldIsSpeculativelyEvaluating.

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

7 years agoFurther refactoring of the constant emitter. NFC.
John McCall [Thu, 17 Aug 2017 05:03:55 +0000 (05:03 +0000)]
Further refactoring of the constant emitter.  NFC.

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

7 years ago[analyzer] Add support for reference counting of parameters on the callee side
Devin Coughlin [Thu, 17 Aug 2017 04:19:07 +0000 (04:19 +0000)]
[analyzer] Add support for reference counting of parameters on the callee side

This commit adds the functionality of performing reference counting on the
callee side for Integer Set Library (ISL) to Clang Static Analyzer's
RetainCountChecker.

Reference counting on the callee side can be extensively used to perform
debugging within a function (For example: Finding leaks on error paths).

Patch by Malhar Thakkar!

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

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

7 years ago[index] Add indexing for unresolved-using declarations
Ben Langmuir [Wed, 16 Aug 2017 23:12:21 +0000 (23:12 +0000)]
[index] Add indexing for unresolved-using declarations

In dependent contexts we end up referencing these, so make sure they
have USRs, and have their declarations indexed. For the most part they
behave like typedefs, but we also need to worry about having multiple
using declarations with the same "name".

rdar://problem/33883650

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

7 years agoFix typos in comments; NFC
George Burgess IV [Wed, 16 Aug 2017 22:44:17 +0000 (22:44 +0000)]
Fix typos in comments; NFC

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

7 years agoDon't use -no-integrated-as in test/Driver/opt-record.c
Hal Finkel [Wed, 16 Aug 2017 21:51:31 +0000 (21:51 +0000)]
Don't use -no-integrated-as in test/Driver/opt-record.c

-no-integrated-as is not supported on some targets (e.g.,
x86_64-pc-windows-msvc). Testing using -save-temps is good enough to cover the
relevant logic, and that should work everywhere.

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

7 years agoBase optimization-record file names on the final output
Hal Finkel [Wed, 16 Aug 2017 21:34:27 +0000 (21:34 +0000)]
Base optimization-record file names on the final output

Using Output.getFilename() to construct the file name used for optimization
recording in Clang::ConstructJob, when -c is provided, does not work correctly
if we're not using the integrated assembler. With -no-integrated-as (or
-save-temps) Output.getFilename() gives the name of the temporary assembly
file, not the final output file. Instead, use the final output (as provided by
-o). If this is not available, then fall back to using a name based on the
input file.

Fixes PR31532.

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

7 years agoUse the file name from linemarker for debug info if an input is preprocessed source.
Taewook Oh [Wed, 16 Aug 2017 19:36:24 +0000 (19:36 +0000)]
Use the file name from linemarker for debug info if an input is preprocessed source.

Summary:
Even in the case of the input file is a preprocessed source, clang uses the file name of the preprocesses source for debug info (DW_AT_name attribute for DW_TAG_compile_unit). However, gcc uses the file name specified in the first linemarker instead. This makes more sense because the one specified in the linemarker represents the "actual" source file name.

Clang already uses the file name specified in the first linemarker for Module name (https://github.com/llvm-mirror/clang/blob/master/lib/Frontend/FrontendAction.cpp#L779) if the input is preprocessed. This patch makes clang to use the same value for debug info as well.

Reviewers: compnerd, rnk, dblaikie, rsmith

Reviewed By: rnk

Subscribers: aprantl, cfe-commits

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

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

7 years ago[Driver] SafeStack does not need a runtime library on Fuchsia
Petr Hosek [Wed, 16 Aug 2017 19:06:05 +0000 (19:06 +0000)]
[Driver] SafeStack does not need a runtime library on Fuchsia

Patch by Roland McGrath

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

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

7 years ago[CMake] Build sanitized C++ runtimes for Fuchsia
Petr Hosek [Wed, 16 Aug 2017 19:06:04 +0000 (19:06 +0000)]
[CMake] Build sanitized C++ runtimes for Fuchsia

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

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

7 years ago[OPENMP] Fix for PR28581: OpenMP linear clause - wrong results.
Alexey Bataev [Wed, 16 Aug 2017 15:58:46 +0000 (15:58 +0000)]
[OPENMP] Fix for PR28581: OpenMP linear clause - wrong results.

If worksharing construct has at least one linear item, an implicit
synchronization point must be emitted to avoid possible conflict with
the loading/storing values to the original variables. Added implicit
barrier if the linear item is found before actual start of the
worksharing construct.

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

7 years ago[OPRNMP] Fix for PR33445: ICE: OpenMP target containing ordered for.
Alexey Bataev [Wed, 16 Aug 2017 14:01:00 +0000 (14:01 +0000)]
[OPRNMP] Fix for PR33445: ICE: OpenMP target containing ordered for.

If exceptions are enabled, there may be a problem with the codegen of
the finalization functions from OpenMP runtime. It happens because of
the problem with the getting of thread identifier value. Patch tries to
fix it by using the result of the call of function
__kmpc_global_thread_num() rather than loading of value of outlined
function parameter.

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

7 years agoFix a UBSan failure where this boolean was copied when uninitialized.
Chandler Carruth [Wed, 16 Aug 2017 07:22:49 +0000 (07:22 +0000)]
Fix a UBSan failure where this boolean was copied when uninitialized.

When r310905 moved the pointer and bool out of a PointerIntPair, it made
them end up uninitialized and caused UBSan failures when copying the
uninitialized boolean. However, making the pointer be null should avoid
the reference to the boolean entirely.

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

7 years agoFix comments about __OPENCL_MEMORY_SCOPE_* macros
Yaxun Liu [Wed, 16 Aug 2017 04:15:28 +0000 (04:15 +0000)]
Fix comments about __OPENCL_MEMORY_SCOPE_* macros

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

7 years agoPR19668, PR23034: Fix handling of move constructors and deleted copy
Richard Smith [Wed, 16 Aug 2017 01:49:53 +0000 (01:49 +0000)]
PR19668, PR23034: Fix handling of move constructors and deleted copy
constructors when deciding whether classes should be passed indirectly.

This fixes ABI differences between Clang and GCC:

 * Previously, Clang ignored the move constructor when making this
   determination. It now takes the move constructor into account, per
   https://github.com/itanium-cxx-abi/cxx-abi/pull/17 (this change may
   seem recent, but the ABI change was agreed on the Itanium C++ ABI
   list a long time ago).

 * Previously, Clang's behavior when the copy constructor was deleted
   was unstable -- depending on whether the lazy declaration of the
   copy constructor had been triggered, you might get different behavior.
   We now eagerly declare the copy constructor whenever its deletedness
   is unclear, and ignore deleted copy/move constructors when looking for
   a trivial such constructor.

This also fixes an ABI difference between Clang and MSVC:

 * If the copy constructor would be implicitly deleted (but has not been
   lazily declared yet), for instance because the class has an rvalue
   reference member, we would pass it directly. We now pass such a class
   indirectly, matching MSVC.

Based on a patch by Vassil Vassilev, which was based on a patch by Bernd
Schmidt, which was based on a patch by Reid Kleckner!

This is a re-commit of r310401, which was reverted in r310464 due to ARM
failures (which should now be fixed).

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

7 years agoAdd test that we get the correct calling convention and mangling for va_list.
Richard Smith [Wed, 16 Aug 2017 01:46:46 +0000 (01:46 +0000)]
Add test that we get the correct calling convention and mangling for va_list.

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

7 years agoAdd missing test for warning added in r310803.
Richard Smith [Wed, 16 Aug 2017 00:06:07 +0000 (00:06 +0000)]
Add missing test for warning added in r310803.

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

7 years agoRevert "Revert "Revert "Fix LLVMgold plugin name/path for non-Linux."""
Dan Albert [Tue, 15 Aug 2017 23:57:34 +0000 (23:57 +0000)]
Revert "Revert "Revert "Fix LLVMgold plugin name/path for non-Linux."""

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

7 years agoRevert "Add a target for new LTO plugin name tests."
Dan Albert [Tue, 15 Aug 2017 23:57:32 +0000 (23:57 +0000)]
Revert "Add a target for new LTO plugin name tests."

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

7 years agoDo not look through pack expansions when looking for unexpanded parameter packs.
Richard Smith [Tue, 15 Aug 2017 22:58:45 +0000 (22:58 +0000)]
Do not look through pack expansions when looking for unexpanded parameter packs.

Fixes a selection of rejects-valids when pack-expanding a lambda that itself
contains a pack expansion.

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

7 years agoAdd a target for new LTO plugin name tests.
Dan Albert [Tue, 15 Aug 2017 22:10:44 +0000 (22:10 +0000)]
Add a target for new LTO plugin name tests.

Not all targets will use -plugin with -flto. Pick a fixed target so
this works regardless of the default target (regardless of host OS,
the toolchain should be picking the correct LTO plugin for a target
that supports it).

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

7 years agoExtract IRGen's constant-emitter into its own helper class and clean up
John McCall [Tue, 15 Aug 2017 21:42:52 +0000 (21:42 +0000)]
Extract IRGen's constant-emitter into its own helper class and clean up
the interface.

The ultimate goal here is to make it easier to do some more interesting
things in constant emission, like emit constant initializers that have
ignorable side-effects, or doing the majority of an initialization
in-place and then patching up the last few things with calls.  But for
now this is mostly just a refactoring.

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

7 years agoAllow the target field of a CK_ToUnion to be more easily recovered.
John McCall [Tue, 15 Aug 2017 21:42:47 +0000 (21:42 +0000)]
Allow the target field of a CK_ToUnion to be more easily recovered.

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

7 years agoAllow StmtVisitor visitation to be parameterized. NFC.
John McCall [Tue, 15 Aug 2017 21:42:42 +0000 (21:42 +0000)]
Allow StmtVisitor visitation to be parameterized.  NFC.

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

7 years agoRevert "Revert "Fix LLVMgold plugin name/path for non-Linux.""
Dan Albert [Tue, 15 Aug 2017 21:31:17 +0000 (21:31 +0000)]
Revert "Revert "Fix LLVMgold plugin name/path for non-Linux.""

Summary:
Relanding https://reviews.llvm.org/D35739 which was reverted because
it broke the tests on non-Linux. The tests have been fixed to be
platform agnostic, and additional tests have been added to make sure
that the plugin has the correct extension on each platform
(%pluginext doesn't work in CHECK lines).

Reviewers: srhines, pirama

Reviewed By: srhines

Subscribers: emaste, mehdi_amini, eraman, cfe-commits

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

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

7 years agoSwitch to consumeError(), since this can crash otherwise.
Stephen Hines [Tue, 15 Aug 2017 21:20:41 +0000 (21:20 +0000)]
Switch to consumeError(), since this can crash otherwise.

Summary:
If assertions are disabled, but LLVM_ABI_BREAKING_CHANGES is enabled,
this will cause an issue with an unchecked Success. Switching to
consumeError() is the correct way to bypass the check.

Reviewers: llvm-commits, cfe-commits, arphaman

Reviewed By: arphaman

Subscribers: arphaman, klimek, pirama

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

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

7 years agoFixup for r310950: Also remove the new instance of %T from html-diags.c
Kuba Mracek [Tue, 15 Aug 2017 19:54:04 +0000 (19:54 +0000)]
Fixup for r310950: Also remove the new instance of %T from html-diags.c

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

7 years ago[clang] Get rid of "%T" expansions
Kuba Mracek [Tue, 15 Aug 2017 19:47:06 +0000 (19:47 +0000)]
[clang] Get rid of "%T" expansions

The %T lit expansion expands to a common directory shared between all the tests in the same directory, which is unexpected and unintuitive, and more importantly, it's been a source of subtle race conditions and flaky tests. In https://reviews.llvm.org/D35396, it was agreed that it would be best to simply ban %T and only keep %t, which is unique to each test. When a test needs a temporary directory, it can just create one using mkdir %t.

This patch removes %T in clang.

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

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

7 years ago[clang] Code cleanup in clang/tooling
Alexander Shaposhnikov [Tue, 15 Aug 2017 19:23:54 +0000 (19:23 +0000)]
[clang] Code cleanup in clang/tooling

1. Add missing explicit for SymbolName constructor.
2. Add missing std::move in createRenameReplacements.

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

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

7 years agoPR33082: Improve tracking of unexpanded parameter packs within variadic generic lambdas.
Richard Smith [Tue, 15 Aug 2017 19:11:21 +0000 (19:11 +0000)]
PR33082: Improve tracking of unexpanded parameter packs within variadic generic lambdas.

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

7 years agoAttempt to fix failure in CodeGenOpenCL/atomic-ops.cl again
Yaxun Liu [Tue, 15 Aug 2017 17:59:26 +0000 (17:59 +0000)]
Attempt to fix failure in CodeGenOpenCL/atomic-ops.cl again

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

7 years ago[index] Update indexing to handle CXXDeductionGuideDecls properly
Argyrios Kyrtzidis [Tue, 15 Aug 2017 17:20:37 +0000 (17:20 +0000)]
[index] Update indexing to handle CXXDeductionGuideDecls properly

CXXDeductionGuideDecls can't be referenced so there's no need to output a symbol occurrence for them.
Also handle DeducedTemplateSpecializationTypeLocs in the TypeIndexer so we don't miss the symbol occurrences of the corresponding template decls.

Patch by Nathan Hawes!

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

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

7 years agoAttempt to fix failure in CodeGenOpenCL/atomic-ops.cl
Yaxun Liu [Tue, 15 Aug 2017 17:16:44 +0000 (17:16 +0000)]
Attempt to fix failure in CodeGenOpenCL/atomic-ops.cl

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

7 years agoRemove -finclude-default-header in OpenCL atomic tests
Yaxun Liu [Tue, 15 Aug 2017 16:30:31 +0000 (16:30 +0000)]
Remove -finclude-default-header in OpenCL atomic tests

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

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

7 years ago[OpenCL] Support variable memory scope in atomic builtins
Yaxun Liu [Tue, 15 Aug 2017 16:02:49 +0000 (16:02 +0000)]
[OpenCL] Support variable memory scope in atomic builtins

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

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

7 years agoAllow pretty platform names in availability attributes
Alex Lorenz [Tue, 15 Aug 2017 14:42:01 +0000 (14:42 +0000)]
Allow pretty platform names in availability attributes

rdar://32076651

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

7 years ago[OPENMP] Fix compiler crash on argument translate for NVPTX.
Alexey Bataev [Tue, 15 Aug 2017 14:34:04 +0000 (14:34 +0000)]
[OPENMP] Fix compiler crash on argument translate for NVPTX.

When translating arguments for NVPTX target it is not taken into account
that function may have variable number of arguments. Patch fixes this
problem.

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

7 years ago[Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties
Alex Lorenz [Tue, 15 Aug 2017 12:40:01 +0000 (12:40 +0000)]
[Sema] Silence -Wobjc-missing-property-synthesis for unavailable properties

rdar://30296911

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

7 years ago[OpenCL] Allow targets to select address space per type
Sven van Haastregt [Tue, 15 Aug 2017 09:38:18 +0000 (09:38 +0000)]
[OpenCL] Allow targets to select address space per type

Generalize getOpenCLImageAddrSpace into getOpenCLTypeAddrSpace, such
that targets can select the address space per type.

No functional changes intended.

Initial patch by Simon Perretta.

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

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

7 years agoAvoid PointerIntPair of constexpr EvalInfo structs
Reid Kleckner [Tue, 15 Aug 2017 01:17:47 +0000 (01:17 +0000)]
Avoid PointerIntPair of constexpr EvalInfo structs

They are stack allocated, so their alignment is not to be trusted.
32-bit MSVC only guarantees 4 byte stack alignment, even though alignof
would tell you otherwise. I tried fixing this with __declspec align, but
that apparently upsets GCC. Hopefully this version will satisfy all
compilers.

See PR32018 for some info about the mingw issues.

Should supercede https://reviews.llvm.org/D34873

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

7 years agoRevert "Fix LLVMgold plugin name/path for non-Linux."
Dan Albert [Tue, 15 Aug 2017 00:31:44 +0000 (00:31 +0000)]
Revert "Fix LLVMgold plugin name/path for non-Linux."

Broke a test. Will fix the test and re-land later.

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

7 years ago[CMake] Include LLVMFuzzer in Fuchsia toolchain
Petr Hosek [Tue, 15 Aug 2017 00:22:00 +0000 (00:22 +0000)]
[CMake] Include LLVMFuzzer in Fuchsia toolchain

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

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

7 years agoFix LLVMgold plugin name/path for non-Linux.
Dan Albert [Mon, 14 Aug 2017 23:19:38 +0000 (23:19 +0000)]
Fix LLVMgold plugin name/path for non-Linux.

Summary:
It's only named LLVMgold.so on Linux. Fix the name for Windows and
Darwin.

Also fix the path for Windows so binutils doesn't have to.

Reviewers: srhines, pirama

Reviewed By: srhines

Subscribers: cfe-commits

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

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

7 years ago[analyzer] Fix SimpleSValBuilder::simplifySVal
Alexander Shaposhnikov [Mon, 14 Aug 2017 21:23:08 +0000 (21:23 +0000)]
[analyzer] Fix SimpleSValBuilder::simplifySVal

This diff fixes a crash (triggered assert) on the newly added test case.
In the method Simplifier::VisitSymbolData we check the type of S and return
Loc/NonLoc accordingly.

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

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

7 years ago[Sema] Improve some -Wunguarded-availability diagnostics
Erik Pilkington [Mon, 14 Aug 2017 19:49:12 +0000 (19:49 +0000)]
[Sema] Improve some -Wunguarded-availability diagnostics

rdar://33543523
Differential revision: https://reviews.llvm.org/D36200

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

7 years ago[OPENMP] Fix for PR33922: New ident_t flags for
Alexey Bataev [Mon, 14 Aug 2017 17:56:13 +0000 (17:56 +0000)]
[OPENMP] Fix for PR33922: New ident_t flags for
__kmpc_for_static_init().

OpenMP 5.0 will include OpenMP Tools interface that requires distinguishing different worksharing constructs.

Since the same entry point (__kmp_for_static_init(ident_t *loc,
kmp_int32 global_tid,........)) is called in case static
loop/sections/distribute it is suggested using 'flags' field of the
ident_t structure to pass the type of the construct.

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

7 years ago[rename] Introduce symbol occurrences
Alex Lorenz [Mon, 14 Aug 2017 16:19:24 +0000 (16:19 +0000)]
[rename] Introduce symbol occurrences

Symbol occurrences store the results of local rename and will also be used for
the global, indexed rename results. Their kind is used to determine whether they
should be renamed automatically or not. They can be converted to a set of
AtomicChanges as well.

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

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

7 years agoclang-format: [JS] wrap optional properties in type aliases.
Martin Probst [Mon, 14 Aug 2017 16:09:08 +0000 (16:09 +0000)]
clang-format: [JS] wrap optional properties in type aliases.

Summary:
clang-format wraps object literal keys in an object literal if they are
marked as `TT_SelectorName`s and/or the colon is marked as
`TT_DictLiteral`. Previously, clang-format would accidentally work
because colons in type aliases were marked as `TT_DictLiteral`. r310367
fixed this to assing `TT_JsTypeColon`, which broke wrapping in certain
situations. However the root cause was that clang-format incorrectly
didn't skip questionmarks when detecting selector name.

This change fixes both locations to (1) assign `TT_SelectorName` and (2)
treat `TT_JsTypeColon` like `TT_DictLiteral`.

Previously:

    type X = {
      a: string, b?: string,
    };

Now:

    type X = {
      a: string,
      b?: string,
    };

Reviewers: djasper, sammccall

Subscribers: cfe-commits, klimek

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

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

7 years agoclang-format: [JS] do not insert whitespace in call positions.
Martin Probst [Mon, 14 Aug 2017 16:08:16 +0000 (16:08 +0000)]
clang-format: [JS] do not insert whitespace in call positions.

Summary:
In JavaScript, may keywords can be used in method names and thus call sites:

    foo.delete();
    foo.instanceof();

clang-format would previously insert whitespace after the `instanceof`. This
change generically skips inserting whitespace between a keyword and a
parenthesis if preceded by a dot, i.e. in a callsite.

Reviewers: djasper

Subscribers: klimek, cfe-commits

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

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

7 years ago[OPENMP][DEBUG] Fix for PR33676: Debug info for OpenMP region is broken.
Alexey Bataev [Mon, 14 Aug 2017 16:03:47 +0000 (16:03 +0000)]
[OPENMP][DEBUG] Fix for PR33676: Debug info for OpenMP region is broken.

After some changes in clang/LLVM debug info for task-based regions was
not generated at all. Patch fixes this problem.

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

7 years ago[OPENMP] Generalization of calls of the outlined functions.
Alexey Bataev [Mon, 14 Aug 2017 15:01:03 +0000 (15:01 +0000)]
[OPENMP] Generalization of calls of the outlined functions.

General improvement of the outlined functions calls.

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

7 years ago[Parse] Fix typo in header docs (NFC)
Brian Gesiak [Mon, 14 Aug 2017 14:29:11 +0000 (14:29 +0000)]
[Parse] Fix typo in header docs (NFC)

Summary:
Fix typo "delcarations", added in rL310609 and rL310627.

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

7 years agoFixes a typo in a comment; NFC.
Aaron Ballman [Mon, 14 Aug 2017 14:16:00 +0000 (14:16 +0000)]
Fixes a typo in a comment; NFC.

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

7 years agoclang-format: Fix left pointer alignment after delctype/typeof
Krasimir Georgiev [Mon, 14 Aug 2017 11:06:07 +0000 (11:06 +0000)]
clang-format: Fix left pointer alignment after delctype/typeof

Change 272124* introduced a regression in spaceRequiredBetween for left aligned pointers to decltype and typeof expressions. This fix adds logic to fix this. The test added is based on a related test in determineStarAmpUsage. Also add test cases for the regression.

http://llvm.org/viewvc/llvm-project?view=revision&revision=272124
LLVM bug tracker: https://bugs.llvm.org/show_bug.cgi?id=30407

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

Fix contributed by euhlmann!

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

7 years agoSet the lexical context for dummy tag decl inside createTagFromNewDecl
Alex Lorenz [Mon, 14 Aug 2017 10:59:44 +0000 (10:59 +0000)]
Set the lexical context for dummy tag decl inside createTagFromNewDecl

This is a follow-up to r310706. This change has been recommended by
Bruno Cardoso Lopes and Richard Smith.

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

7 years ago[analyzer] Rename functions responsible for CFG-based suppress-on-sink.
Artem Dergachev [Mon, 14 Aug 2017 08:38:47 +0000 (08:38 +0000)]
[analyzer] Rename functions responsible for CFG-based suppress-on-sink.

Update comments. No functional change intended.

Addresses Devin's post-commit review comments in https://reviews.llvm.org/D35673
and https://reviews.llvm.org/D35674.

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

7 years agoFix memory leak in ToolChain::TranslateOpenMPTargetArgs
Jonas Hahnfeld [Mon, 14 Aug 2017 07:44:05 +0000 (07:44 +0000)]
Fix memory leak in ToolChain::TranslateOpenMPTargetArgs

rL310433 introduced a code path where DAL is not returned and must be freed.
This change allows to run openmp-offload.c when Clang is built with ASan.

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

7 years agoRename cxx1z -> cxx17 across all diagnostic IDs.
Richard Smith [Sun, 13 Aug 2017 23:37:29 +0000 (23:37 +0000)]
Rename cxx1z -> cxx17 across all diagnostic IDs.

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

7 years agoReplace remaining user-visible mentions of C++1z with C++17.
Richard Smith [Sun, 13 Aug 2017 22:26:53 +0000 (22:26 +0000)]
Replace remaining user-visible mentions of C++1z with C++17.

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

7 years ago[c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for C++17...
Richard Smith [Sun, 13 Aug 2017 21:32:33 +0000 (21:32 +0000)]
[c++2a] Treat 'concept' and 'requires' as keywords, add compat warning for C++17 and before.

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

7 years ago[AArch64] Add support for a MinGW AArch64 target
Martin Storsjo [Sun, 13 Aug 2017 19:42:17 +0000 (19:42 +0000)]
[AArch64] Add support for a MinGW AArch64 target

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

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

7 years agoclang-format: add an option -verbose to list the files being processed
Sylvestre Ledru [Sat, 12 Aug 2017 15:15:10 +0000 (15:15 +0000)]
clang-format: add an option -verbose to list the files being processed

Reviewers: djasper

Reviewed By: djasper

Subscribers: klimek, cfe-commits

Tags: #clang

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

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

7 years agoPR34163: Don't cache an incorrect key function for a class if queried between
Richard Smith [Sat, 12 Aug 2017 01:46:03 +0000 (01:46 +0000)]
PR34163: Don't cache an incorrect key function for a class if queried between
the class becoming complete and its inline methods being parsed.

This replaces the hack of using the "late parsed template" flag to track member
functions with bodies we've not parsed yet; instead we now use the "will have
body" flag, which carries the desired implication that the function declaration
*is* a definition, and that we've just not parsed its body yet.

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

7 years agoRevert "[Modules] Prevent #import to reenter header if not building a module."
Bruno Cardoso Lopes [Sat, 12 Aug 2017 01:38:26 +0000 (01:38 +0000)]
Revert "[Modules] Prevent #import to reenter header if not building a module."

This reverts commit r310605. Richard pointed out a better way to achieve
this, which I'll post a patch for soon.

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

7 years agoAdd a Dockerfile for clang-proto-fuzzer
Kostya Serebryany [Sat, 12 Aug 2017 01:27:10 +0000 (01:27 +0000)]
Add a Dockerfile for clang-proto-fuzzer

Summary: Add a Dockerfile for clang-proto-fuzzer

Reviewers: morehouse, vitalybuka

Reviewed By: morehouse

Subscribers: hintonda, cfe-commits

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

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

7 years agoDisabling openmp-offload.c on linux until it is stabilized on all local configurations.
Alex Shlyapnikov [Fri, 11 Aug 2017 23:10:39 +0000 (23:10 +0000)]
Disabling openmp-offload.c on linux until it is stabilized on all local configurations.

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

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

7 years ago[OpenMP] Move failing flag tests to disabled GPU
Gheorghe-Teodor Bercea [Fri, 11 Aug 2017 21:17:50 +0000 (21:17 +0000)]
[OpenMP] Move failing flag tests to disabled GPU
offloading test file. This should prevent further errors
with the sanitizer.

Diff: D29660

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

7 years agoAdd -fsanitize=fuzzer-no-link flag to the driver.
George Karpenkov [Fri, 11 Aug 2017 17:22:58 +0000 (17:22 +0000)]
Add -fsanitize=fuzzer-no-link flag to the driver.

The flag will perform instrumentation necessary to the fuzzing,
but will NOT link libLLVMFuzzer.a library.
Necessary when modifying CFLAGS for projects which may produce
executables as well as a fuzzable target.

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

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

7 years ago[OpenMP] Enable previously successful offloading tests.
Gheorghe-Teodor Bercea [Fri, 11 Aug 2017 15:46:22 +0000 (15:46 +0000)]
[OpenMP] Enable previously successful offloading tests.

Create a separate test file to contain all tests for OpenMP
offloading to GPUs.

Make libdevice checking more robust by accounting for
the case in which no libdevice is found.

This changes are in connrection with diff: D29660

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

7 years ago[mips] Add missing mips-registered-target to mips test.
Simon Dardis [Fri, 11 Aug 2017 15:23:23 +0000 (15:23 +0000)]
[mips] Add missing mips-registered-target to mips test.

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

7 years ago[mips] Support implicit gpopt with N64 when using -fno-pic
Simon Dardis [Fri, 11 Aug 2017 15:01:34 +0000 (15:01 +0000)]
[mips] Support implicit gpopt with N64 when using -fno-pic

As clang defaults to -mno-abicalls when using -fno-pic for N64, implicitly use
-mgpopt in that case.

Reviewers: atanasyan

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

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

7 years ago[modules] Set the lexical DC for dummy tag decls that refer to hidden
Alex Lorenz [Fri, 11 Aug 2017 12:06:52 +0000 (12:06 +0000)]
[modules] Set the lexical DC for dummy tag decls that refer to hidden
declarations that are made visible after the dummy is parsed and ODR verified

Prior to this commit the
"(getContainingDC(DC) == CurContext && "The next DeclContext should be lexically contained in the current one."),"
assertion failure was triggered during semantic analysis of the dummy
tag declaration that was declared in another tag declaration because its
lexical context did not point to the outer tag decl.

rdar://32292196

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

7 years agoRevert r302670 for the upcoming 5.0.0 release
Stefan Maksimovic [Fri, 11 Aug 2017 11:39:07 +0000 (11:39 +0000)]
Revert r302670 for the upcoming 5.0.0 release

This is causing failures when compiling clang with -O3
as one of the structures used by clang is passed by
value and uses the fastcc calling convention.

Faliures manifest for stage2 mips build.

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

7 years agoRevert r310057
Stefan Maksimovic [Fri, 11 Aug 2017 11:03:54 +0000 (11:03 +0000)]
Revert r310057

Bring back changes which r304953 introduced since
they were in fact not the cause of failures described
in r310057 commit message.

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

7 years ago[Bash-autocompletion] Add --autocomplete flag to 5.0 release notes
Yuka Takahashi [Fri, 11 Aug 2017 09:44:42 +0000 (09:44 +0000)]
[Bash-autocompletion] Add --autocomplete flag to 5.0 release notes

Summary:
I thought we should add this information to release notes, because we
added a new flag to clang driver.

Reviewers: v.g.vassilev, teemperor, ruiu

Subscribers: cfe-commits

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

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

7 years agoRevert "Thread Safety Analysis: warn on nonsensical attributes."
Josh Gao [Fri, 11 Aug 2017 07:54:35 +0000 (07:54 +0000)]
Revert "Thread Safety Analysis: warn on nonsensical attributes."

This reverts commit rL310403, which caused spurious warnings in libc++,
because it didn't properly handle templated scoped lockable types.

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

7 years agoImplement latest feature test macro recommendations, P0096R4.
Richard Smith [Fri, 11 Aug 2017 03:39:40 +0000 (03:39 +0000)]
Implement latest feature test macro recommendations, P0096R4.

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

7 years agoUpdate cxx_status to mention the upcoming Clang 5 release.
Richard Smith [Fri, 11 Aug 2017 03:16:11 +0000 (03:16 +0000)]
Update cxx_status to mention the upcoming Clang 5 release.

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

7 years agoPR33850: Update cxx_dr_status for Clang 5 branch.
Richard Smith [Fri, 11 Aug 2017 03:14:20 +0000 (03:14 +0000)]
PR33850: Update cxx_dr_status for Clang 5 branch.

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

7 years agoPR33489: A function-style cast to a deduced class template specialization type is...
Richard Smith [Fri, 11 Aug 2017 02:04:19 +0000 (02:04 +0000)]
PR33489: A function-style cast to a deduced class template specialization type is type-dependent if it can't be resolved due to a type-dependent argument.

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

7 years ago[Sema][ObjC] Fix spurious -Wcast-qual warnings.
Akira Hatanaka [Fri, 11 Aug 2017 00:06:49 +0000 (00:06 +0000)]
[Sema][ObjC] Fix spurious -Wcast-qual warnings.

We do not meaningfully track object const-ness of Objective-C object
types. Silence the -Wcast-qual warning that is issued when casting to or
from Objective-C object types results in losing const qualification.

rdar://problem/33807915

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

7 years ago[X86] Implement __builtin_cpu_is
Craig Topper [Thu, 10 Aug 2017 20:28:30 +0000 (20:28 +0000)]
[X86] Implement __builtin_cpu_is

This patch adds support for __builtin_cpu_is. I've tried to match the strings supported to the latest version of gcc.

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

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

7 years agoEnable bunch of sanitizers on NetBSD/X86 and X86_64
Kamil Rytarowski [Thu, 10 Aug 2017 18:53:52 +0000 (18:53 +0000)]
Enable bunch of sanitizers on NetBSD/X86 and X86_64

Summary:
Enable more sanitizers:
 - i386 and amd64:
 * SanitizerKind::Vptr;
 * SanitizerKind::Leak;
 * SanitizerKind::SafeStack;
 * SanitizerKind::Function;

 - amd64 only:
 * SanitizerKind::Thread;

These sanitizers are in the process of upstreaming to LLVM projects.

Sponsored by <The NetBSD Foundation>

Reviewers: joerg, dim, vitalybuka, kcc, filcab, fjricci

Reviewed By: vitalybuka

Subscribers: #sanitizers, cfe-commits

Tags: #sanitizers

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

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

7 years agoDisabling openmp-offload.c on linux until it is stabilized on all local configurations.
Alex Shlyapnikov [Thu, 10 Aug 2017 17:55:01 +0000 (17:55 +0000)]
Disabling openmp-offload.c on linux until it is stabilized on all local configurations.

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

7 years ago[Parse] Document Parser::SkipFunctionBodies
Brian Gesiak [Thu, 10 Aug 2017 17:02:04 +0000 (17:02 +0000)]
[Parse] Document Parser::SkipFunctionBodies

Reviewers: erikjv, doug.gregor

Subscribers: cfe-commits

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

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

7 years ago[OpenMP] Delete tests in openmp-offload.c which cuase failures
Gheorghe-Teodor Bercea [Thu, 10 Aug 2017 16:56:59 +0000 (16:56 +0000)]
[OpenMP] Delete tests in openmp-offload.c which cuase failures
until a better way to perform these tests is figured out.

Change connected to diff: D29654

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

7 years agoAdd a getName accessor for ModuleMacros.
Bob Wilson [Thu, 10 Aug 2017 16:42:46 +0000 (16:42 +0000)]
Add a getName accessor for ModuleMacros.

Swift would like to be able to access the name of a ModuleMacro.
There was some discussion of this in
https://github.com/apple/swift-clang/pull/93, suggesting that it makes
sense to have this accessor in Clang.

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

7 years agoFixed a race condition in PrecompiledPreamble.
Ilya Biryukov [Thu, 10 Aug 2017 16:10:40 +0000 (16:10 +0000)]
Fixed a race condition in PrecompiledPreamble.

Summary:
Two PrecompiledPreambles, used in parallel on separate threads,
could be writing preamble to the same temporary file.

Reviewers: bkramer, krasimir, klimek

Reviewed By: klimek

Subscribers: cfe-commits

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

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

7 years agoPlace implictly declared functions at block scope
Momchil Velikov [Thu, 10 Aug 2017 15:43:06 +0000 (15:43 +0000)]
Place implictly declared functions at block scope

Such implicitly declared functions behave as if the enclosing block
contained the declaration extern int name() (C90, 6.3.3.2 Function calls),
thus their names should have block scope (C90, 6.1.2.1 Scope of identifiers).

This patch fixes https://bugs.llvm.org/show_bug.cgi?id=33224

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

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

7 years ago[mips] Group all `-mabicalls` related checks in the single place. NFC
Simon Atanasyan [Thu, 10 Aug 2017 15:42:31 +0000 (15:42 +0000)]
[mips] Group all `-mabicalls` related checks in the single place. NFC

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

7 years ago[mips] Show warning in case of mixing -mlong-calls and -mabicalls options
Simon Atanasyan [Thu, 10 Aug 2017 15:42:25 +0000 (15:42 +0000)]
[mips] Show warning in case of mixing -mlong-calls and -mabicalls options

While we do not support `-mshared / -mno-shared` properly, show warning
and ignore `-mlong-calls` option in case of implicitly or explicitly
provided `-mabicalls` option.

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

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

7 years ago[mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI
Simon Atanasyan [Thu, 10 Aug 2017 15:42:16 +0000 (15:42 +0000)]
[mips] Notify user that `-mabicalls` is ignored on non-PIC N64 ABI

The -mabicalls option does not make sense in the case of non position
independent code for the N64 ABI. After this change the driver shows a
warning that -mabicalls is ignored in that case.

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

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

7 years ago[Parse] Document PrintStats, SkipFunctionBodies
Brian Gesiak [Thu, 10 Aug 2017 15:30:35 +0000 (15:30 +0000)]
[Parse] Document PrintStats, SkipFunctionBodies

Summary:
Add documentation for `clang::ParseAST` parameters `PrintStats` and
`SkipFunctionBodies`. Also, remove a tiny bit of trailing whitespace.

Reviewers: craig.topper, doug.gregor, erikjv

Subscribers: cfe-commits

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

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

7 years ago[Modules] Prevent #import to reenter header if not building a module.
Bruno Cardoso Lopes [Thu, 10 Aug 2017 15:16:24 +0000 (15:16 +0000)]
[Modules] Prevent #import to reenter header if not building a module.

When non-modular headers are imported while not building a module but
in -fmodules mode, be conservative and preserve the default #import
semantic: do not reenter headers.

rdar://problem/33745031

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

7 years ago[sanitizer-coverage] Change cmp instrumentation to distinguish const operands
Alexander Potapenko [Thu, 10 Aug 2017 15:00:13 +0000 (15:00 +0000)]
[sanitizer-coverage] Change cmp instrumentation to distinguish const operands

This implementation of SanitizerCoverage instrumentation inserts different
callbacks depending on constantness of operands:

  1. If both operands are non-const, then a usual
     __sanitizer_cov_trace_cmp[1248] call is inserted.
  2. If exactly one operand is const, then a
     __sanitizer_cov_trace_const_cmp[1248] call is inserted. The first
     argument of the call is always the constant one.
  3. If both operands are const, then no callback is inserted.

This separation comes useful in fuzzing when tasks like "find one operand
of the comparison in input arguments and replace it with the other one"
have to be done. The new instrumentation allows us to not waste time on
searching the constant operands in the input.

Patch by Victor Chibotaru.

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

7 years ago[ValueTracking] Enabling ValueTracking patch by default (recommit). Part 1.
Nikolai Bozhenov [Thu, 10 Aug 2017 11:22:52 +0000 (11:22 +0000)]
[ValueTracking] Enabling ValueTracking patch by default (recommit). Part 1.

The original patch was an improvement to IR ValueTracking on non-negative
integers. It has been checked in to trunk (D18777, r284022). But was disabled by
default due to performance regressions.
Perf impact has improved. The patch would be enabled by default.

Reviewers: reames, hfinkel

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

Patch by: Olga Chupina <olga.chupina@intel.com>

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

7 years agoRevert r310489 and follow-up commits r310505, r310519, r310537 and r310549
Alex Lorenz [Thu, 10 Aug 2017 10:34:46 +0000 (10:34 +0000)]
Revert r310489 and follow-up commits r310505, r310519, r310537 and r310549

Commit r310489 caused 'openmp-offload.c' test failures on Darwin and other
platforms:
http://lab.llvm.org:8080/green/job/clang-stage1-cmake-RA-incremental_check/39230/testReport/junit/Clang/Driver/openmp_offload_c/

The follow-up commits tried to fix the test, but the test is still failing.

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

7 years ago[Lexer] Finding beginning of token with escaped new line
Alexander Kornienko [Thu, 10 Aug 2017 10:06:16 +0000 (10:06 +0000)]
[Lexer] Finding beginning of token with escaped new line

Summary:
Lexer::GetBeginningOfToken produced invalid location when
backtracking across escaped new lines.

This fixes PR26228

Reviewers: akyrtzi, alexfh, rsmith, doug.gregor

Reviewed By: alexfh

Subscribers: alexfh, cfe-commits

Patch by PaweÅ‚ Å»ukowski!

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

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