]> granicus.if.org Git - clang/log
clang
7 years ago[analyzer] Only attempt to get the value of locations of known type
George Karpenkov [Tue, 27 Feb 2018 19:28:52 +0000 (19:28 +0000)]
[analyzer] Only attempt to get the value of locations of known type

Fixes https://bugs.llvm.org/show_bug.cgi?id=36474

In general, getSVal API should be changed so that it does not crash on
some non-obvious conditions.
It should either be updated to require a type, or to return Optional<SVal>.

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

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

7 years ago[analyzer] Quickfix: don't crash when runtime definition is not available.
George Karpenkov [Tue, 27 Feb 2018 19:19:49 +0000 (19:19 +0000)]
[analyzer] Quickfix: don't crash when runtime definition is not available.

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

7 years ago[analyzer] Logging test quickfix #2.
George Karpenkov [Tue, 27 Feb 2018 19:19:43 +0000 (19:19 +0000)]
[analyzer] Logging test quickfix #2.

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

7 years ago[clang-format] Format operator key in protos
Krasimir Georgiev [Tue, 27 Feb 2018 19:07:47 +0000 (19:07 +0000)]
[clang-format] Format operator key in protos

Summary: This fixes a glitch where ``operator: value`` in a text proto would mess up the underlying formatting since it gets parsed as a kw_operator instead of an identifier.

Subscribers: klimek, cfe-commits

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

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

7 years agoHandle the NetBSD case in ToolChain::getOSLibName()
Kamil Rytarowski [Tue, 27 Feb 2018 18:16:47 +0000 (18:16 +0000)]
Handle the NetBSD case in ToolChain::getOSLibName()

Return a new CompilerRT Path on NetBSD: "netbsd", instead of
getOS(), which returns a string like "netbsd8.9.12".

Sponsored by <The NetBSD Foundation>

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

7 years ago[OPENMP] Allow multiple mappings for member expressions for pointers.
Alexey Bataev [Tue, 27 Feb 2018 17:42:00 +0000 (17:42 +0000)]
[OPENMP] Allow multiple mappings for member expressions for pointers.

If several member expressions are mapped and they reference the same
address as a base, but access different members, this must be allowed.

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

7 years ago[clang-format] Tidy up new API guessLanguage()
Ben Hamilton [Tue, 27 Feb 2018 15:56:40 +0000 (15:56 +0000)]
[clang-format] Tidy up new API guessLanguage()

Summary:
This fixes a few issues djasper@ brought up in his review of D43522.

Test Plan:
  make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests

Reviewers: djasper

Reviewed By: djasper

Subscribers: klimek, cfe-commits

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

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

7 years agoRevert "[Tooling] [0/1] Refactor FrontendActionFactory::create() to return std::uniqu...
Roman Lebedev [Tue, 27 Feb 2018 15:54:55 +0000 (15:54 +0000)]
Revert "[Tooling] [0/1] Refactor FrontendActionFactory::create() to return std::unique_ptr<>"

This reverts commit rL326201

This broke gcc4.8 builds, compiler just segfaults:¬
http://lab.llvm.org:8011/builders/clang-atom-d525-fedora-rel/builds/14909¬
http://lab.llvm.org:8011/builders/clang-x86_64-linux-abi-test/builds/22673¬

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

7 years ago[Tooling] [0/1] Refactor FrontendActionFactory::create() to return std::unique_ptr<>
Roman Lebedev [Tue, 27 Feb 2018 15:19:20 +0000 (15:19 +0000)]
[Tooling] [0/1] Refactor FrontendActionFactory::create() to return std::unique_ptr<>

Summary:
Noticed during review of D41102.

I'm not sure whether there are any principal reasons why it returns raw owning pointer,
or it is just a old code that was not updated post-C++11.

I'm not too sure what testing i should do, because `check-all` is not error clean here for some reason,
but it does not //appear// asif those failures are related to these changes.

This is clang part.
Clang-tools-extra part is D43780.

Reviewers: klimek, bkramer, alexfh, pcc

Reviewed By: alexfh

Subscribers: cfe-commits

Tags: #clang

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

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

7 years agoAttrDocs.td: fix some bad code-blocks
Hans Wennborg [Tue, 27 Feb 2018 13:48:50 +0000 (13:48 +0000)]
AttrDocs.td: fix some bad code-blocks

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

7 years agoAttrDocs.td: fix bad bullet list
Hans Wennborg [Tue, 27 Feb 2018 13:48:47 +0000 (13:48 +0000)]
AttrDocs.td: fix bad bullet list

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

7 years agoAttrDocs.td: fix bad indent and code block
Hans Wennborg [Tue, 27 Feb 2018 13:48:41 +0000 (13:48 +0000)]
AttrDocs.td: fix bad indent and code block

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

7 years agoclang-format: use AfterControlStatement to format ObjC control blocks
Francois Ferrand [Tue, 27 Feb 2018 13:48:27 +0000 (13:48 +0000)]
clang-format: use AfterControlStatement to format ObjC control blocks

ObjC defines `@autoreleasepool` and `@synchronized` control blocks. These
used to be formatted according to the `AfterObjCDeclaration` brace-
wrapping flag, which is not very consistent.

This patch changes the behavior to use the `AfterControlStatement` flag
instead. This should not affect the behavior unless a custom brace
wrapping mode is used.

Reviewers: krasimir, djasper, klimek, benhamilton

Subscribers: cfe-commits

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

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

7 years agoclang-format: fix formatting of ObjC @synchronized blocks
Francois Ferrand [Tue, 27 Feb 2018 13:48:21 +0000 (13:48 +0000)]
clang-format: fix formatting of ObjC @synchronized blocks

Summary:
The blocks used to be formatted using the "default" behavior, and would
thus be mistaken for function calls followed by blocks: this could lead
to unexpected inlining of the block and extra line-break before the
opening brace.

They are now formatted similarly to `@autoreleasepool` blocks, as
expected:

  @synchronized(self) {
      f();
  }

Reviewers: krasimir, djasper, klimek

Subscribers: cfe-commits

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

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

7 years ago[test] Extend the Driver/mingw-msvcrt.c test with a -SAME check. NFC.
Martin Storsjo [Tue, 27 Feb 2018 08:35:35 +0000 (08:35 +0000)]
[test] Extend the Driver/mingw-msvcrt.c test with a -SAME check. NFC.

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

7 years ago[RecordLayout] Don't align to non-power-of-2 sizes when using -mms-bitfields
Martin Storsjo [Tue, 27 Feb 2018 06:27:06 +0000 (06:27 +0000)]
[RecordLayout] Don't align to non-power-of-2 sizes when using -mms-bitfields

When targeting GNU/MinGW for i386, the size of the "long double" data
type is 12 bytes (while it is 8 bytes in MSVC). When building
with -mms-bitfields to have struct layouts match MSVC, data types
are laid out in a struct with alignment according to their size.
However, this doesn't make sense for the long double type, since
it doesn't match MSVC at all, and aligning to a non-power-of-2
size triggers other asserts later.

This matches what GCC does, aligning a long double to 4 bytes
in structs on i386 even when -mms-bitfields is specified.

This fixes asserts when using the max_align_t data type when
building for MinGW/i386 with the -mms-bitfields flag.

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

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

7 years ago[Driver] Fix codeview-column-info on macOS
Shoaib Meenai [Tue, 27 Feb 2018 06:04:23 +0000 (06:04 +0000)]
[Driver] Fix codeview-column-info on macOS

macOS home directory paths begin with /Users, and clang-cl interprets
the /U portion as a macro undefine rather than a path, causing test
failures on macOS. Use a -- to explicitly treat the input file as a path
and fix the test.

This effectively reverts r326168 and adds an alternative fix.

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

7 years agoAttempt to fix greendragon bot after r326141
Adam Nemet [Tue, 27 Feb 2018 04:49:26 +0000 (04:49 +0000)]
Attempt to fix greendragon bot after r326141

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

7 years ago[analyzer] Fix an uninitialized field.
Artem Dergachev [Tue, 27 Feb 2018 02:53:30 +0000 (02:53 +0000)]
[analyzer] Fix an uninitialized field.

Found by the analyzer!

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

7 years ago[Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows.
Igor Kudrin [Tue, 27 Feb 2018 02:51:30 +0000 (02:51 +0000)]
[Driver] Allow using a canonical form of '-fuse-ld=' when cross-compiling on Windows.

clang used to require adding an ".exe" suffix when targeting ELF systems on Windows.

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

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

7 years ago[analyzer] Switch the default exploration strategy to priority queue based on coverage
George Karpenkov [Tue, 27 Feb 2018 01:31:56 +0000 (01:31 +0000)]
[analyzer] Switch the default exploration strategy to priority queue based on coverage

After the investigation it seems safe to flip the switch.

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

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

7 years ago[analyzer] Logging test typo quickfix.
George Karpenkov [Tue, 27 Feb 2018 01:31:06 +0000 (01:31 +0000)]
[analyzer] Logging test typo quickfix.

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

7 years ago[analyzer] Logging test quickfix.
George Karpenkov [Tue, 27 Feb 2018 01:13:28 +0000 (01:13 +0000)]
[analyzer] Logging test quickfix.

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

7 years agoRevert "Revert "[analyzer] Quickfix: do not overflow in calculating offset in RegionM...
George Karpenkov [Tue, 27 Feb 2018 00:05:04 +0000 (00:05 +0000)]
Revert "Revert "[analyzer] Quickfix: do not overflow in calculating offset in RegionManager""

This reverts commit c4cc41166d93178a3ddd4b2b5a685cf74a459247.

Revert and fix uninitialized read.

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

7 years ago[Driver] Add SafeStack to a map of incompatible sanitizers
Petr Hosek [Tue, 27 Feb 2018 00:01:26 +0000 (00:01 +0000)]
[Driver] Add SafeStack to a map of incompatible sanitizers

This allows reporting an error when user tries to use SafeStack with
incompatible sanitizers.

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

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

7 years ago[StaticAnalyzer] Fix some Clang-tidy modernize and Include What You Use warnings...
Eugene Zelenko [Mon, 26 Feb 2018 23:15:52 +0000 (23:15 +0000)]
[StaticAnalyzer] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

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

7 years agoFix which Darwin versions have ObjC runtime with full subscripting support.
Volodymyr Sapsai [Mon, 26 Feb 2018 23:10:23 +0000 (23:10 +0000)]
Fix which Darwin versions have ObjC runtime with full subscripting support.

Update min deployment target in some tests so that they don't try
to link against libarclite and don't fail when it's not available.

rdar://problem/29253617

Reviewers: vsk, kubamracek

Reviewed By: vsk

Subscribers: jkorous-apple, cfe-commits

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

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

7 years agoFix codeview-column-info.c test with a triple
Reid Kleckner [Mon, 26 Feb 2018 23:06:40 +0000 (23:06 +0000)]
Fix codeview-column-info.c test with a triple

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

7 years agoRe-land "Emit proper CodeView when -gcodeview is passed without the cl driver."
Reid Kleckner [Mon, 26 Feb 2018 22:55:33 +0000 (22:55 +0000)]
Re-land "Emit proper CodeView when -gcodeview is passed without the cl driver."

Reverts r326116 and re-lands r326113 with a fix to ASan so that it
enables column info in its test suite.

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

7 years ago[analyzer] Exploration strategy prioritizing unexplored nodes first
George Karpenkov [Mon, 26 Feb 2018 22:14:18 +0000 (22:14 +0000)]
[analyzer] Exploration strategy prioritizing unexplored nodes first

See D42775 for discussion.  Turns out, just exploring nodes which
weren't explored first is not quite enough, as e.g. the first quick
traversal resulting in a report can mark everything as "visited", and
then subsequent traversals of the same region will get all the pitfalls
of DFS.
Priority queue-based approach in comparison shows much greater
increase in coverage and even performance, without sacrificing memory.

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

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

7 years ago[analyzer] Do not analyze bison-generated files
George Karpenkov [Mon, 26 Feb 2018 22:14:16 +0000 (22:14 +0000)]
[analyzer] Do not analyze bison-generated files

Bison/YACC generated files result in a very large number of (presumably)
false positives from the analyzer.
These false positives are "true" in a sense of the information analyzer
sees: assuming that the lexer can return any token at any point a number
of uninitialized reads does occur.
(naturally, the analyzer can not capture a complex invariant that
certain tokens can only occur under certain conditions).

Current fix simply stops analysis on those files.
I have examined a very large number of such auto-generated files, and
they do all start with such a comment.
Conversely, user code is very unlikely to contain such a comment.

rdar://33608161

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

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

7 years agoRevert "[analyzer] Quickfix: do not overflow in calculating offset in RegionManager"
George Karpenkov [Mon, 26 Feb 2018 21:32:57 +0000 (21:32 +0000)]
Revert "[analyzer] Quickfix: do not overflow in calculating offset in RegionManager"

This reverts commit df306c4c5ab4a6b8d3c47432346d1f9b90c328b4.

Reverting until I can figured out the reasons for failures.

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

7 years ago[analyzer] Quickfix: do not overflow in calculating offset in RegionManager
George Karpenkov [Mon, 26 Feb 2018 21:03:06 +0000 (21:03 +0000)]
[analyzer] Quickfix: do not overflow in calculating offset in RegionManager

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

rdar://37159026

A proper fix would be much harder, and would involve changing the
appropriate code in ExprEngine to be aware of the size limitations of
the type used for addressing.

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

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

7 years agoRevert "Emit proper CodeView when -gcodeview is passed without the cl driver."
Zachary Turner [Mon, 26 Feb 2018 19:51:29 +0000 (19:51 +0000)]
Revert "Emit proper CodeView when -gcodeview is passed without the cl driver."

This reverts commit e17911006548518634fad66bb8648bcad49a1d64.

This is failing on ASAN bots because asan expects column info,
and it's also failing on some linux bots for unknown reasons which
i need to investigate.

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

7 years agoEmit proper CodeView when -gcodeview is passed without the cl driver.
Zachary Turner [Mon, 26 Feb 2018 19:25:39 +0000 (19:25 +0000)]
Emit proper CodeView when -gcodeview is passed without the cl driver.

Windows debuggers don't work properly when column info is emitted
with lines.  We handled this by checking if the driver mode was
cl, but it's possible to cause the gcc driver to emit codeview as
well, and in that path we were emitting column info with codeview.

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

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

7 years agoFix for LLVM r326109
David Zarzycki [Mon, 26 Feb 2018 18:42:30 +0000 (18:42 +0000)]
Fix for LLVM r326109

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

7 years ago[Driver] Forward opt-remark hotness threshold to LTO
Adam Nemet [Mon, 26 Feb 2018 18:38:11 +0000 (18:38 +0000)]
[Driver] Forward opt-remark hotness threshold to LTO

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

7 years ago[DebugInfo] Support DWARF v5 source code embedding extension
Scott Linder [Mon, 26 Feb 2018 17:32:31 +0000 (17:32 +0000)]
[DebugInfo] Support DWARF v5 source code embedding extension

In DWARF v5 the Line Number Program Header is extensible, allowing values with
new content types. This vendor extension to DWARF v5 allows source text to be
embedded directly in the line tables of the debug line section.

Add new flag (-g[no-]embed-source) to Driver and CC1 which indicates
that source should be passed through to LLVM during CodeGen.

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

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

7 years ago[CodeGen][DebugInfo] Refactor duplicated code, NFC
Scott Linder [Mon, 26 Feb 2018 16:31:08 +0000 (16:31 +0000)]
[CodeGen][DebugInfo] Refactor duplicated code, NFC

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

7 years agoRe-land: "[Support] Replace HashString with djbHash."
Jonas Devlieghere [Mon, 26 Feb 2018 15:16:42 +0000 (15:16 +0000)]
Re-land: "[Support] Replace HashString with djbHash."

This patch removes the HashString function from StringExtraces and
replaces its uses with calls to djbHash from DJB.h.

This change is *almost* NFC. While the algorithm is identical, the
djbHash implementation in StringExtras used 0 as its default seed while
the implementation in DJB uses 5381. The latter has been shown to result
in less collisions and improved avalanching and is used by the DWARF
accelerator tables.

Because some test were implicitly relying on the hash order, I've
reverted to using zero as a seed for the following two files:

  lld/include/lld/Core/SymbolTable.h
  llvm/lib/Support/StringMap.cpp

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

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

7 years agoRe-commit r324991 "Fix for PR32992. Static const classes not exported."
Hans Wennborg [Mon, 26 Feb 2018 15:03:59 +0000 (15:03 +0000)]
Re-commit r324991 "Fix for PR32992. Static const classes not exported."

Fix for PR32992. Static const classes not exported.

Patch by zahiraam!

(This re-lands the commit, but using S.MarkVariableReferenced instead of
S.PendingInstantiations.push_back, and with an additional test.)

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

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

7 years agoResolve build bot problems in unittests/Format/FormatTest.cpp
Bjorn Pettersson [Mon, 26 Feb 2018 14:14:11 +0000 (14:14 +0000)]
Resolve build bot problems in unittests/Format/FormatTest.cpp

Summary:
Make the new GetStyleWithEmptyFileName test case independent
of the file system used when running the test. Since the
test is supposed to use the fallback "Google" style we now
use a InMemoryFileSystem to make sure that we do not accidentaly
find a .clang-format file in the real file system. That could
for example happen when having the build directory inside the
llvm och clang repo (as there is a .clang-format file inside
the repos).

Reviewers: vsapsai, jolesiak, krasimir, benhamilton

Reviewed By: krasimir

Subscribers: uabelho, twoh, klimek, cfe-commits

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

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

7 years agoExplicitly initialize ForceEnableInt128 to avoid UB
Ilya Biryukov [Mon, 26 Feb 2018 12:06:05 +0000 (12:06 +0000)]
Explicitly initialize ForceEnableInt128 to avoid UB

This fixes an uninitialized value read found by msan.

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

7 years agoRevert "[Support] Replace HashString with djbHash."
Jonas Devlieghere [Mon, 26 Feb 2018 12:05:18 +0000 (12:05 +0000)]
Revert "[Support] Replace HashString with djbHash."

It looks like some of our tests depend on the ordering of hashed values.
I'm reverting my changes while I try to reproduce and fix this locally.

Failing builds:

  lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/18388
  lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/6743
  lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/15607

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

7 years ago[Support] Replace HashString with djbHash.
Jonas Devlieghere [Mon, 26 Feb 2018 11:30:13 +0000 (11:30 +0000)]
[Support] Replace HashString with djbHash.

This removes the HashString function from StringExtraces and replaces
its uses with calls to djbHash from DJB.h

This is *almost* NFC. While the algorithm is identical, the djbHash
implementation in StringExtras used 0 as its seed while the
implementation in DJB uses 5381. The latter has been shown to result in
less collisions and improved avalanching.

https://reviews.llvm.org/D43615
(cherry picked from commit 77f7f965bc9499a9ae768a296ca5a1f7347d1d2c)

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

7 years ago[www] Update link to analyzer's "Building a Checker in 24 hours" video
Devin Coughlin [Mon, 26 Feb 2018 00:39:25 +0000 (00:39 +0000)]
[www] Update link to analyzer's "Building a Checker in 24 hours" video

The video is now uploaded to YouTube.

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

7 years agoWhen diagnosing the arguments to alloc_size, report the failing argument using a...
Aaron Ballman [Sun, 25 Feb 2018 20:40:06 +0000 (20:40 +0000)]
When diagnosing the arguments to alloc_size, report the failing argument using a 1-based index instead of a 0-based index for consistency.

Patch by Joel Denny.

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

7 years agoFix a failing assertion with the pointer_with_type_tag attribute when the function...
Aaron Ballman [Sun, 25 Feb 2018 20:28:10 +0000 (20:28 +0000)]
Fix a failing assertion with the pointer_with_type_tag attribute when the function the attribute appertains to is variadic.

Patch by Joel Denny.

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

7 years agoSwitch the default behavior of the Clang<> spelling to opt-in to the C2x attribute...
Aaron Ballman [Sun, 25 Feb 2018 15:34:17 +0000 (15:34 +0000)]
Switch the default behavior of the Clang<> spelling to opt-in to the C2x attribute spellings. NFC to the attribute spellings themselves.

The Clang<> spelling helper generates a spelling for C++11, GNU, and C2x attribute spellings. Previously, users had to manually opt in to the C2x spelling while we cautiously added attributes to that spelling. Now that majority of attributes are exposed in C2x, we can switch the default.

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

7 years agoDocument why the consumed attributes (consumable, callable_when, et al) are not expos...
Aaron Ballman [Sun, 25 Feb 2018 14:54:25 +0000 (14:54 +0000)]
Document why the consumed attributes (consumable, callable_when, et al) are not exposed with a C2x spelling. NFC.

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

7 years agoAdd a C2x spelling for the external_source_symbol and internal_linkage attributes...
Aaron Ballman [Sun, 25 Feb 2018 14:43:45 +0000 (14:43 +0000)]
Add a C2x spelling for the external_source_symbol and internal_linkage attributes in the clang vendor namespace.

Both of these attributes have existing meaning in C code, so there was no reason to exclude them from using the new spelling.

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

7 years agoAdd a C++11 and C2x spelling for the type safety attribute (argument_with_type_tag...
Aaron Ballman [Sun, 25 Feb 2018 14:01:04 +0000 (14:01 +0000)]
Add a C++11 and C2x spelling for the type safety attribute (argument_with_type_tag, pointer_with_type_tag, and type_tag_for_datatype) in the clang vendor namespace.

The TypeTagForDatatype attribute had custom parsing rules that previously prevented it from being supported with square bracket notation. The ArgumentWithTypeTag attribute previously had unnecessary custom parsing that could be handled declaratively.

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

7 years ago[RISCV] Enable __int128_t and __uint128_t through clang flag
Mandeep Singh Grang [Sun, 25 Feb 2018 03:58:23 +0000 (03:58 +0000)]
[RISCV] Enable __int128_t and __uint128_t through clang flag

Summary:
If the flag -fforce-enable-int128 is passed, it will enable support for __int128_t and __uint128_t types.
This flag can then be used to build compiler-rt for RISCV32.

Reviewers: asb, kito-cheng, apazos, efriedma

Reviewed By: asb, efriedma

Subscribers: shiva0217, efriedma, jfb, dschuff, sdardis, sbc100, jgravelle-google, aheejin, rbar, johnrusso, simoncook, jordy.potman.lists, sabuasal, niosHD, cfe-commits

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

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

7 years ago[X86] Remove some masked cvt builtins that can be replaced with legacy sse/avx buiilt...
Craig Topper [Sat, 24 Feb 2018 18:55:13 +0000 (18:55 +0000)]
[X86] Remove some masked cvt builtins that can be replaced with legacy sse/avx buiiltins and a select.

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

7 years agoAdd a C++11 and C2x spelling for the objc_bridge_related attribute in the clang vendo...
Aaron Ballman [Sat, 24 Feb 2018 17:37:37 +0000 (17:37 +0000)]
Add a C++11 and C2x spelling for the objc_bridge_related attribute in the clang vendor namespace.

This attribute has custom parsing rules that previously prevented it from being supported with square bracket notation.

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

7 years agoAdd a C++11 and C2x spelling for the availability attribute in the clang vendor names...
Aaron Ballman [Sat, 24 Feb 2018 17:16:42 +0000 (17:16 +0000)]
Add a C++11 and C2x spelling for the availability attribute in the clang vendor namespace.

This attribute has custom parsing rules that previously prevented it from being supported with square bracket notation. Rework the clang attribute argument parsing to be more easily extended for other custom-parsed attributes.

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

7 years agoRemove unused variable. We should be warning-free.
Daniel Jasper [Sat, 24 Feb 2018 06:57:47 +0000 (06:57 +0000)]
Remove unused variable. We should be warning-free.

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

7 years agoMake module use diagnostics refer to the top-level module
Daniel Jasper [Sat, 24 Feb 2018 06:54:09 +0000 (06:54 +0000)]
Make module use diagnostics refer to the top-level module

All use declarations need to be directly placed in the top-level module
anyway, knowing the submodule doesn't really help. The header that has
the offending #include can easily be seen in the diagnostics source
location.

Review: https://reviews.llvm.org/D43673

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

7 years ago[X86] Remove __builtin_ia32_permvarsf256_mask and __builtin_ia32_permvarsi256_mask...
Craig Topper [Sat, 24 Feb 2018 06:46:42 +0000 (06:46 +0000)]
[X86] Remove __builtin_ia32_permvarsf256_mask and __builtin_ia32_permvarsi256_mask and use the avx2 unmasked versions and a select instead.

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

7 years ago[CFG] Keep speculatively working around an MSVC compiler crash.
Artem Dergachev [Sat, 24 Feb 2018 03:54:22 +0000 (03:54 +0000)]
[CFG] Keep speculatively working around an MSVC compiler crash.

Replace if() with a switch(). Because random changes in the code seem to
suppress the crash.

Story so far:
r325966 - Crash introduced.
r325969 - Speculative fix had no effect.
r325978 - Tried to bisect the offending function, crash suddenly disappeared.
r326016 - After another random change in the code, bug appeared again.

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

7 years ago[CFG] Provide construction contexts for temporaries in conditional operators.
Artem Dergachev [Sat, 24 Feb 2018 03:10:15 +0000 (03:10 +0000)]
[CFG] Provide construction contexts for temporaries in conditional operators.

When a lifetime-extended temporary is on a branch of a conditional operator,
materialization of such temporary occurs after the condition is resolved.

This change allows us to understand, by including the MaterializeTemporaryExpr
in the construction context, the target for temporary materialization in such
cases.

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

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

7 years ago[CFG] Provide construction contexts for temporaries bound to const references.
Artem Dergachev [Sat, 24 Feb 2018 02:07:50 +0000 (02:07 +0000)]
[CFG] Provide construction contexts for temporaries bound to const references.

In order to bind a temporary to a const lvalue reference, a no-op cast is added
to make the temporary itself const, and only then the reference is taken
(materialized). Skip the no-op cast when looking for the construction context.

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

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

7 years ago[CFG] Provide construction contexts for functional cast-like constructors.
Artem Dergachev [Sat, 24 Feb 2018 02:05:11 +0000 (02:05 +0000)]
[CFG] Provide construction contexts for functional cast-like constructors.

When a constructor of a temporary with a single argument is treated
as a functional cast expression, skip the functional cast expression
and provide the correct construction context for the temporary.

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

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

7 years ago[CFG] Provide construction contexts for lifetime-extended temporaries.
Artem Dergachev [Sat, 24 Feb 2018 02:00:30 +0000 (02:00 +0000)]
[CFG] Provide construction contexts for lifetime-extended temporaries.

When constructing a temporary that is going to be lifetime-extended through a
MaterializeTemporaryExpr later, CFG elements for the respective constructor
can now be queried to obtain the reference to that MaterializeTemporaryExpr
and therefore gain information about lifetime extension.

This may produce multi-layered construction contexts when information about
both temporary destruction and lifetime extension is available.

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

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

7 years agoAdd another test for PR36157.
Richard Smith [Sat, 24 Feb 2018 00:00:58 +0000 (00:00 +0000)]
Add another test for PR36157.

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

7 years ago[ExprConstant] Fix crash when initialize an indirect field with another field.
Volodymyr Sapsai [Fri, 23 Feb 2018 23:59:20 +0000 (23:59 +0000)]
[ExprConstant] Fix crash when initialize an indirect field with another field.

When indirect field is initialized with another field, you have
MemberExpr with CXXThisExpr that corresponds to the field's immediate
anonymous parent. But 'this' was referring to the non-anonymous parent.
So when we were building LValue Designator, it was incorrect as it had
wrong starting point. Usage of such designator would cause unexpected
APValue changes and crashes.

The fix is in adjusting 'this' for indirect fields from non-anonymous
parent to the field's immediate parent.

Discovered by OSS-Fuzz:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4985

rdar://problem/36359187

Reviewers: rsmith, efriedma

Reviewed By: rsmith

Subscribers: cfe-commits, jkorous-apple

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

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

7 years agobpf: Hook target feature "alu32" with LLVM
Yonghong Song [Fri, 23 Feb 2018 23:55:29 +0000 (23:55 +0000)]
bpf: Hook target feature "alu32" with LLVM

LLVM has supported a new target feature "alu32" which could be enabled or
disabled by "-mattr=[+|-]alu32" when using llc.

This patch link Clang with it, so it could be also done by passing related
options to Clang, for example:

  -Xclang -target-feature -Xclang +alu32

Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
Reviewed-by: Yonghong Song <yhs@fb.com>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325996 91177308-0d34-0410-b5e6-96231b3b80d8

7 years ago[Sema][ObjC] Process category attributes before checking protocol uses
Alex Lorenz [Fri, 23 Feb 2018 23:49:43 +0000 (23:49 +0000)]
[Sema][ObjC] Process category attributes before checking protocol uses

This ensures that any availability attributes are attached to the
category before the availability for the referenced protocols is checked.

rdar://37829755

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

7 years ago[CFG] Try to narrow down MSVC compiler crash via binary search.
Artem Dergachev [Fri, 23 Feb 2018 23:38:41 +0000 (23:38 +0000)]
[CFG] Try to narrow down MSVC compiler crash via binary search.

Split the presumably offending function in two to see which part of it causes
the crash to occur.

The crash was introduced in r325966.
r325969 did not help.

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

7 years ago[analyzer] Relax the assert used when traversing the node graph.
George Karpenkov [Fri, 23 Feb 2018 23:26:57 +0000 (23:26 +0000)]
[analyzer] Relax the assert used when traversing the node graph.

The assertion gets exposed when changing the exploration order.
This is a quick hacky fix, but the intention is that if the nodes do
merge, it should not matter which predecessor should be traverse.
A proper fix would be not to traverse predecessors at all, as all
information relevant for any decision should be avilable locally.

rdar://37540480

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

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

7 years ago[analyzer] mark returns of functions where the region passed as parameter was not...
George Karpenkov [Fri, 23 Feb 2018 23:26:56 +0000 (23:26 +0000)]
[analyzer] mark returns of functions where the region passed as parameter was not initialized

In the wild, many cases of null pointer dereference, or uninitialized
value read occur because the value was meant to be initialized by the
inlined function, but did not, most often due to error condition in the
inlined function.
This change highlights the return branch taken by the inlined function,
in order to help user understand the error report and see why the value
was uninitialized.

rdar://36287652

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

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

7 years ago[analyzer] Consider switch- and goto- labels when constructing the set of executed...
George Karpenkov [Fri, 23 Feb 2018 23:26:54 +0000 (23:26 +0000)]
[analyzer] Consider switch- and goto- labels when constructing the set of executed lines

When viewing the report in the collapsed mode the label signifying where
did the execution go is often necessary for properly understanding the
context.

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

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

7 years ago[CFG] NFC: Speculative attempt to fix MSVC internal compiler error on buildbot.
Artem Dergachev [Fri, 23 Feb 2018 22:49:25 +0000 (22:49 +0000)]
[CFG] NFC: Speculative attempt to fix MSVC internal compiler error on buildbot.

Don't use fancy initialization and member access in a DenseMap.

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

7 years ago[CFG] [analyzer] NFC: Allow more complicated construction contexts.
Artem Dergachev [Fri, 23 Feb 2018 22:20:39 +0000 (22:20 +0000)]
[CFG] [analyzer] NFC: Allow more complicated construction contexts.

ConstructionContexts introduced in D42672 are an additional piece of information
included with CFGConstructor elements that help the client of the CFG (such as
the Static Analyzer) understand where the newly constructed object is stored.

The patch refactors the ConstructionContext class to prepare for including
multi-layered contexts that are being constructed gradually, layer-by-layer,
as the AST is traversed.

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

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

7 years agoSet Module Metadata "RtLibUseGOT" when fno-plt is used.
Sriraman Tallam [Fri, 23 Feb 2018 21:27:33 +0000 (21:27 +0000)]
Set Module Metadata "RtLibUseGOT" when fno-plt is used.

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

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

7 years ago[Driver] Make -fno-common default for Fuchsia
Petr Hosek [Fri, 23 Feb 2018 20:10:14 +0000 (20:10 +0000)]
[Driver] Make -fno-common default for Fuchsia

We never want to generate common symbols on Fuchsia.

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

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

7 years agoReally fix test on windows.
Rafael Espindola [Fri, 23 Feb 2018 19:38:41 +0000 (19:38 +0000)]
Really fix test on windows.

Sorry for the noise.

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

7 years agoFix one last test on a windows host.
Rafael Espindola [Fri, 23 Feb 2018 19:36:20 +0000 (19:36 +0000)]
Fix one last test on a windows host.

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

7 years agoBring r325915 back.
Rafael Espindola [Fri, 23 Feb 2018 19:30:48 +0000 (19:30 +0000)]
Bring r325915 back.

The tests that failed on a windows host have been fixed.

Original message:

Start setting dso_local for COFF.

With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.

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

7 years agoConvert test to FileCheck. NFC.
Rafael Espindola [Fri, 23 Feb 2018 18:18:01 +0000 (18:18 +0000)]
Convert test to FileCheck. NFC.

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

7 years agoRevert "Start setting dso_local for COFF."
Rafael Espindola [Fri, 23 Feb 2018 18:09:29 +0000 (18:09 +0000)]
Revert "Start setting dso_local for COFF."

This reverts commit r325915.

It will take some time to fix the failures on a windows host.

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

7 years agoRevert "[Darwin] Add a test to check clang produces accelerator tables."
Paul Robinson [Fri, 23 Feb 2018 16:36:48 +0000 (16:36 +0000)]
Revert "[Darwin] Add a test to check clang produces accelerator tables."

This reverts commit 7e24e5f8bff77b7e78da3bfcc68abf42457a66c9.
aka r325850.  Clang should not have end-to-end tests.

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

7 years agoStart setting dso_local for COFF.
Rafael Espindola [Fri, 23 Feb 2018 15:32:32 +0000 (15:32 +0000)]
Start setting dso_local for COFF.

With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.

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

7 years agoSupport for the mno-stack-arg-probe flag
Hans Wennborg [Fri, 23 Feb 2018 13:47:36 +0000 (13:47 +0000)]
Support for the mno-stack-arg-probe flag

Adds support for this flag. There is also another piece for llvm
(separate review). More info:
https://bugs.llvm.org/show_bug.cgi?id=36221

By Ruslan Nikolaev!

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

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

7 years ago[mips] Revert r325872
Stefan Maksimovic [Fri, 23 Feb 2018 13:46:14 +0000 (13:46 +0000)]
[mips] Revert r325872

There are still outstanding issues with byVal arguments
that prevent this from being committed. Revert for now.

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

7 years ago[mips] Reland r310704
Stefan Maksimovic [Fri, 23 Feb 2018 08:37:48 +0000 (08:37 +0000)]
[mips] Reland r310704

Recommit this change which was previously reverted
for the 5.0.0 release since the failures identified
were dealt with in r325782.

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

7 years agoAdd a test to ensure we don't permit mutable access on temporaries outside the evalua...
Richard Smith [Fri, 23 Feb 2018 02:03:26 +0000 (02:03 +0000)]
Add a test to ensure we don't permit mutable access on temporaries outside the evaluation in which they were created.

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

7 years ago[Darwin] Add a test to check clang produces accelerator tables.
Davide Italiano [Fri, 23 Feb 2018 01:25:03 +0000 (01:25 +0000)]
[Darwin] Add a test to check clang produces accelerator tables.

This test was previously in lldb, and was only checking that clang
was emitting the correct section. So, it belongs here and not
in the debugger.

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

7 years agoSimplify setting dso_local. NFC.
Rafael Espindola [Fri, 23 Feb 2018 00:22:15 +0000 (00:22 +0000)]
Simplify setting dso_local. NFC.

The value of dso_local can be computed from just IR properties and
global information (object file type, command line options, etc).

With this patch we no longer pass in the Decl. It was almost unused
and making it fully unused guarantees that dso_local is consistent
with the rest of the IR.

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

7 years ago[Sema] Fix some Clang-tidy modernize and Include What You Use warnings; other minor...
Eugene Zelenko [Thu, 22 Feb 2018 22:35:17 +0000 (22:35 +0000)]
[Sema] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).

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

7 years ago[OpenMP] Limit reduction support for pragma 'distribute' when combined with pragma...
Carlo Bertolli [Thu, 22 Feb 2018 19:38:14 +0000 (19:38 +0000)]
[OpenMP] Limit reduction support for pragma 'distribute' when combined with pragma 'simd'

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

This is a bug fix that removes the emission of reduction support for pragma 'distribute' when found alone or in combinations without simd.
Pragma 'distribute' does not have a reduction clause, but when combined with pragma 'simd' we need to emit the support for simd's reduction clause as part of code generation for distribute. This guard is similar to the one used for reduction support earlier in the same code gen function.

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

7 years ago[CUDA] Added missing functions.
Artem Belevich [Thu, 22 Feb 2018 18:40:52 +0000 (18:40 +0000)]
[CUDA] Added missing functions.

Initial commit missed sincos(float), llabs() and few atomics that we
used to pull in from device_functions.hpp, which we no longer include.

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

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

7 years ago[OPENMP] Require valid SourceLocation in function call, NFC.
Alexey Bataev [Thu, 22 Feb 2018 18:33:31 +0000 (18:33 +0000)]
[OPENMP] Require valid SourceLocation in function call, NFC.

Removed default empty SourceLocation argument from `emitCall` function
and require valid location.

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

7 years ago[docs] Regenerate command line reference
Jonas Hahnfeld [Thu, 22 Feb 2018 17:10:28 +0000 (17:10 +0000)]
[docs] Regenerate command line reference

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

7 years ago[docs] Improve help for OpenMP options, NFC.
Jonas Hahnfeld [Thu, 22 Feb 2018 17:06:35 +0000 (17:06 +0000)]
[docs] Improve help for OpenMP options, NFC.

 * Add HelpText for -fopenmp so that it appears in clang --help.
 * Hide -fno-openmp-simd, only list the positive option.
 * Hide -fopenmp-relocatable-target and -fopenmp-use-tls from
   clang --help and from ClangCommandLineReference.
 * Improve MetaVarName for -Xopenmp-target=<...>.

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

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

7 years ago[docs] Fix duplicate arguments for JoinedAndSeparate
Jonas Hahnfeld [Thu, 22 Feb 2018 17:06:27 +0000 (17:06 +0000)]
[docs] Fix duplicate arguments for JoinedAndSeparate

We can't see how many arguments are in the meta var name, so just
assume that it is the right number.

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

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

7 years ago[OpenCL] Add '-cl-uniform-work-group-size' compile option
Alexey Sotkin [Thu, 22 Feb 2018 11:54:14 +0000 (11:54 +0000)]
[OpenCL] Add '-cl-uniform-work-group-size' compile option

Summary:
OpenCL 2.0 specification defines '-cl-uniform-work-group-size' option,
which requires that the global work-size be a multiple of the work-group
size specified to clEnqueueNDRangeKernel and allows optimizations that
are made possible by this restriction.

The patch introduces the support of this option.

To keep information about whether an OpenCL kernel has uniform work
group size or not, clang generates 'uniform-work-group-size' function
attribute for every kernel:
- "uniform-work-group-size"="true" for OpenCL 1.2 and lower,
- "uniform-work-group-size"="true" for OpenCL 2.0 and higher if
 '-cl-uniform-work-group-size' option was specified,
- "uniform-work-group-size"="false" for OpenCL 2.0 and higher if no
 '-cl-uniform-work-group-size' options was specified.

If the function is not an OpenCL kernel, 'uniform-work-group-size'
attribute isn't generated.

Patch by: krisb

Reviewers: yaxunl, Anastasia, b-sumner

Reviewed By: yaxunl, Anastasia

Subscribers: nhaehnle, yaxunl, Anastasia, cfe-commits

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

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

7 years ago[NFC] fix trivial typos in comments
Hiroshi Inoue [Thu, 22 Feb 2018 07:49:13 +0000 (07:49 +0000)]
[NFC] fix trivial typos in comments

"a a"->"a"

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

7 years agoRevert part of D43378 in this file
Kamil Rytarowski [Thu, 22 Feb 2018 07:00:29 +0000 (07:00 +0000)]
Revert part of D43378 in this file

It causes failure on clang-x86_64-debian-fast.

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

7 years agoRevert part of r. 325746 D43378
Kamil Rytarowski [Thu, 22 Feb 2018 06:48:34 +0000 (06:48 +0000)]
Revert part of r. 325746 D43378

test/Driver/XRay/xray-shared-noxray.cpp fails on !Linux hosts.

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