- Jan 17, 2018
-
-
Hans Wennborg authored
------------------------------------------------------------------------ r321777 | rsmith | 2018-01-03 17:02:18 -0800 (Wed, 03 Jan 2018) | 2 lines PR35028: Retain duplicate alignas attributes in template instantiation. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_60@322676 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 20, 2017
-
-
Erich Keane authored
Looking through the code, I saw a FIXME on IFunc to switch it to a target specific attribute. In looking through it, i saw that the no-longer-appropriately-named TargetArch didn't support ObjectFormat checking. This patch changes the name of TargetArch to TargetSpecific (since it checks much more than just Arch), makes "Arch" optional, adds support for ObjectFormat, better documents the TargetSpecific type, and changes IFunc over to a TargetSpecificAttr. Differential Revision: https://reviews.llvm.org/D41303 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@321201 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 14, 2017
-
-
Aaron Ballman authored
Most attributes will now use the Clang<"name"> construct to provide both __attribute__((name)) and [[clang::name]] syntaxes for the attribute. Attributes deviating from this should be marked with a comment explaining why they are not supported under both spellings. Common reasons are: the attribute is provided by some other specification that controls the syntax or the attribute cannot be exposed under a particular spelling for some given reason. Because this is a mechanical change that only introduces new spellings, there are no test cases for the commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320752 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Dec 01, 2017
-
-
Aaron Ballman authored
Disallow a cleanup attribute from appertaining to a parameter (the attribute only appertains to local variables and is silently a noop on parameters). This repurposes the unused (and syntactically incorrect) NormalVar attribute subject. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@319555 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
Remove duplicate, nonsense information from an attribute diagnostic. The NonParmVar subject does not need to mention functions, and the resulting diagnostic definitely does not need to mention functions twice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@319549 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Nov 26, 2017
-
-
Aaron Ballman authored
Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. This also clarifies some terminology used by the diagnostic (methods -> Objective-C methods, fields -> non-static data members, etc). Many of the tests needed to be updated in multiple places for the diagnostic wording tweaks. The first instance of the diagnostic for that attribute is fully specified and subsequent instances cut off the complete list (to make it easier if additional subjects are added in the future for the attribute). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@319002 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 26, 2017
-
-
Aaron Ballman authored
Add a new attribute definition spelling, Clang<"attr">, that expands to two attribute spellings: GNU<"attr"> and CXX11<"clang", "attr">. This is similar to how the GCC spelling works and is intended to be used for attributes introduced for Clang. Changes all existing attributes that currently use GNU<"attr"> and CXX11<"clang", "attr> spellings to instead use the Clang<"attr"> spelling. No additional tests are necessary because the existing tests already use both spellings for the attributes converted to the new spelling. No functional changes are expected. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316658 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 19, 2017
-
-
Aaron Ballman authored
These attributes are not supported by GCC and should not be in the gnu namespace. Switching from the GCC spelling to the GNU spelling so that they are only supported with __attribute__(()). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316186 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
These attributes are supported by GCC with the gnu vendor namespace for C++11-style attributes. Enabling the gnu namespace by switching to the GCC spelling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316184 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 18, 2017
-
-
Aaron Ballman authored
Enable support for the [[maybe_unused]] attribute from WG14 N2053 when enabling double square bracket attributes in C code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316096 91177308-0d34-0410-b5e6-96231b3b80d8
-
Aaron Ballman authored
Enable support for the [[fallthrough]] attribute from WG14 N2052 when enabling double square bracket attributes in C code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316083 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 17, 2017
-
-
Aaron Ballman authored
Enable support for the [[nodiscard]] attribute from WG14 N2050 when enabling double square bracket attributes in C code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316026 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 16, 2017
-
-
Erich Keane authored
This documentation was copied directly from the GCC documentaiton in r257867. Reverting and alterting the original author so that it can be rewritten in copyright-safe language. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315934 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Oct 15, 2017
-
-
Aaron Ballman authored
Add -f[no-]double-square-bracket-attributes as new driver options to control use of [[]] attributes in all language modes. This is the initial implementation of WG14 N2165, which is a proposal to add [[]] attributes to C2x, but also allows you to enable these attributes in C++98, or disable them in C++11 or later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315856 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 28, 2017
-
-
Erich Keane authored
Attribute nothrow is only allowed on functions, so I added that. Additionally, it lacks any documentation, so I added some. Differential Revision: https://reviews.llvm.org/D38202 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314456 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 22, 2017
-
-
Akira Hatanaka authored
The attribute informs the compiler that the annotated pointer parameter of a function cannot escape and enables IRGen to attach attribute 'nocapture' to parameters that are annotated with the attribute. That is the only optimization that currently takes advantage of 'noescape', but there are other optimizations that will be added later that improves IRGen for ObjC blocks. This recommits r313722, which was reverted in r313725 because clang couldn't build compiler-rt. It failed to build because there were function declarations that were missing 'noescape'. That has been fixed in r313929. rdar://problem/19886775 Differential Revision: https://reviews.llvm.org/D32210 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313945 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 20, 2017
-
-
Akira Hatanaka authored
This reverts commit r313722. It looks like compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc cannot be compiled because some of the functions declared in the file do not match the ones in the SDK headers (which are annotated with 'noescape'). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313725 91177308-0d34-0410-b5e6-96231b3b80d8
-
Akira Hatanaka authored
The attribute informs the compiler that the annotated pointer parameter of a function cannot escape and enables IRGen to attach attribute 'nocapture' to parameters that are annotated with the attribute. That is the only optimization that currently takes advantage of 'noescape', but there are other optimizations that will be added later that improves IRGen for ObjC blocks. rdar://problem/19886775 Differential Revision: https://reviews.llvm.org/D32210 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313722 91177308-0d34-0410-b5e6-96231b3b80d8
-
Akira Hatanaka authored
This reverts r313717. I closed the wrong phabricator review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313721 91177308-0d34-0410-b5e6-96231b3b80d8
-
Akira Hatanaka authored
The attribute informs the compiler that the annotated pointer parameter of a function cannot escape and enables IRGen to attach attribute 'nocapture' to parameters that are annotated with the attribute. That is the only optimization that currently takes advantage of 'noescape', but there are other optimizations that will be added later that improves IRGen for ObjC blocks. rdar://problem/19886775 Differential Revision: https://reviews.llvm.org/D32520 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313720 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Sep 14, 2017
-
-
Piotr Padlewski authored
Summary: This feature was disabled probably by mistake in rL300562 This fixes bug https://bugs.llvm.org/show_bug.cgi?id=33285 Reviewers: davide, rnk Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D33852 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313278 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 31, 2017
-
-
Erich Keane authored
Patch By: anatol.pomozov (anatol.pomozov@gmail.com) Differential Revision: https://reviews.llvm.org/D37312 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@312281 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 30, 2017
-
-
Erich Keane authored
This attribute is useful in OS development when we jump from 32 to 64 bit code and expect that 64bit function forces correct stack alignment. Related discussion: http://lists.llvm.org/pipermail/cfe-dev/2017-June/054358.html Patch By: anatol.pomozov (anatol.pomozov@gmail.com) Differential Revision:https://reviews.llvm.org/D36272 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@312173 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 08, 2017
-
-
Simon Atanasyan authored
This change enables `long_call/short_call/far/near` attributes on MIPS64 targets. Differential revision: https://reviews.llvm.org/D36208 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310418 91177308-0d34-0410-b5e6-96231b3b80d8
-
Josh Gao authored
Delete the test that was broken by rL309725, and add it back in a follow up commit. Also, improve the tests a bit. Reviewers: delesley, aaron.ballman Differential Revision: https://reviews.llvm.org/D36237 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310402 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
Arguments, passed to the outlined function, must have correct address space info for proper Debug info support. Patch sets global address space for arguments that are mapped and passed by reference. Also, cuda-gdb does not handle reference types correctly, so reference arguments are represented as pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310387 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
This reverts commit r310377. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310379 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
Arguments, passed to the outlined function, must have correct address space info for proper Debug info support. Patch sets global address space for arguments that are mapped and passed by reference. Also, cuda-gdb does not handle reference types correctly, so reference arguments are represented as pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310377 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
This reverts commit r310360. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310364 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
Arguments, passed to the outlined function, must have correct address space info for proper Debug info support. Patch sets global address space for arguments that are mapped and passed by reference. Also, cuda-gdb does not handle reference types correctly, so reference arguments are represented as pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310360 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 04, 2017
-
-
Alexey Bataev authored
This reverts commit r310104. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310135 91177308-0d34-0410-b5e6-96231b3b80d8
-
Alexey Bataev authored
Arguments, passed to the outlined function, must have correct address space info for proper Debug info support. Patch sets global address space for arguments that are mapped and passed by reference. Also, cuda-gdb does not handle reference types correctly, so reference arguments are represented as pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@310104 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Aug 01, 2017
-
-
Josh Gao authored
This reverts commit rL309725. Broke test/Sema/attr-capabilities.c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309731 91177308-0d34-0410-b5e6-96231b3b80d8
-
Josh Gao authored
Summary: Previously, the assert_capability attribute was completely ignored by thread safety analysis. Reviewers: delesley, rnk Reviewed By: delesley Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D36122 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309725 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 31, 2017
-
-
Martin Storsjo authored
Differential Revision: https://reviews.llvm.org/D36100 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309620 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 21, 2017
-
-
Simon Atanasyan authored
MIPS gcc supports `long_call/far/near` attributes only, but other targets have the `short_call` attribut, so let's support it for MIPS for consistency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@308719 91177308-0d34-0410-b5e6-96231b3b80d8
-
Richard Trieu authored
tblgen couldn't determing a unique name between "long_call" and "far", so it errored out when generating documentation. Copy the documentation, and give an explicit header for "long_call". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@308714 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 20, 2017
-
-
Simon Atanasyan authored
This patch adds support for the `long_call`, `far`, and `near` attributes for MIPS targets. The `long_call` and `far` attributes are synonyms. All these attributes override `-mlong-calls` / `-mno-long-calls` command line options for particular function. Differential revision: https://reviews.llvm.org/D35479 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@308667 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jul 18, 2017
-
-
Erich Keane authored
Convert attribute 'target' parsing from a 'pair' to a 'struct' to make further improvements easier The attribute 'target' parse function previously returned a pair. Convert this to a 'pair' in order to add more functionality, and improve usability. Differential Revision: https://reviews.llvm.org/D35574 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@308357 91177308-0d34-0410-b5e6-96231b3b80d8
-
- Jun 05, 2017
-
-
Javed Absar authored
This patch provides a means to specify section-names for global variables, functions and static variables, using #pragma directives. This feature is only defined to work sensibly for ELF targets. One can specify section names as: #pragma clang section bss="myBSS" data="myData" rodata="myRodata" text="myText" One can "unspecify" a section name with empty string e.g. #pragma clang section bss="" data="" text="" rodata="" Reviewers: Roger Ferrer, Jonathan Roelofs, Reid Kleckner Differential Revision: https://reviews.llvm.org/D33412 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304705 91177308-0d34-0410-b5e6-96231b3b80d8
-