History log of /external/clang/include/clang/AST/Attr.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
29293cddc682091a16a71f513e605995473f7f45 07-Mar-2012 Dylan Noblesmith <nobled@dreamwidth.org> AST: fix build since r152060

The declarations of the operators no longer matched.
The definitions in ASTContext.h had 'throw()' removed,
but it was still present in Attr.h.

Somehow the buildbots missed this. clang merely warns about
a missing 'throw()' specification and suggested a Fix-It adding
it back, but gcc 4.5 is not so forgiving and gives an error.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
23323e0253716ff03c95a00fb6903019daafe3aa 20-Jan-2012 DeLesley Hutchins <delesley@google.com> Delayed template instantiation of late-parsed attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
99ba9e3bd70671f3441fb974895f226a83ce0e66 20-Dec-2011 David Blaikie <dblaikie@gmail.com> Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
1bea8807bcd2be10bf6309a3a848489434464ced 19-Nov-2011 Douglas Gregor <dgregor@apple.com> Add support for pretty-printing attributes, from Richard Membarth!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Removing a bunch of dead returns/breaks after llvm_unreachables.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
9fe8c74a93ac8e92512615c5f83e7a328b3b0544 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Fix missing includes for llvm_unreachable


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Switch assert(0/false) llvm_unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
768d6cae40ad4ff3aed5483269d068ff7a45e229 13-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Keep the source range of attributes. Depends on a llvm tablegen commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
ffcc3105d223899740e79f3f8199f3881df4d1de 13-Sep-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Record the full source range of an attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
686775deca8b8685eb90801495880e3abdd844c2 20-Jul-2011 Chris Lattner <sabre@nondot.org> now that we have a centralized place to do so, add some using declarations for
some common llvm types: stringref and smallvector. This cleans up the codebase
quite a bit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
9594675cc1eb52a054de13c4a21e466643847480 20-Jul-2011 Chris Lattner <sabre@nondot.org> introduce a centralized place to introduce and inject llvm types into the
clang namespace. There are a number of LLVM types that are used pervasively
and it doesn't make sense to keep qualifying them. Start with casting
operators.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
0a0d2b179085a52c10402feebeb6db8b4d96a140 23-Mar-2011 Douglas Gregor <dgregor@apple.com> Implement a new 'availability' attribute, that allows one to specify
which versions of an OS provide a certain facility. For example,

void foo()
__attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6)));

says that the function "foo" was introduced in 10.2, deprecated in
10.4, and completely obsoleted in 10.6. This attribute ties in with
the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that
we want to deploy back to Mac OS X 10.1). There are several concrete
behaviors that this attribute enables, as illustrated with the
function foo() above:

- If we choose a deployment target >= Mac OS X 10.4, uses of "foo"
will result in a deprecation warning, as if we had placed
attribute((deprecated)) on it (but with a better diagnostic)
- If we choose a deployment target >= Mac OS X 10.6, uses of "foo"
will result in an "unavailable" warning (in C)/error (in C++), as
if we had placed attribute((unavailable)) on it
- If we choose a deployment target prior to 10.2, foo() is
weak-imported (if it is a kind of entity that can be weak
imported), as if we had placed the weak_import attribute on it.

Naturally, there can be multiple availability attributes on a
declaration, for different platforms; only the current platform
matters when checking availability attributes.

The only platforms this attribute currently works for are "ios" and
"macosx", since we already have -mxxxx-version-min flags for them and we
have experience there with macro tricks translating down to the
deprecated/unavailable/weak_import attributes. The end goal is to open
this up to other platforms, and even extension to other "platforms"
that are really libraries (say, through a #pragma clang
define_system), but that hasn't yet been designed and we may want to
shake out more issues with this narrower problem first.

Addresses <rdar://problem/6690412>.

As a drive-by bug-fix, if an entity is both deprecated and
unavailable, we only emit the "unavailable" diagnostic.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
eca5d22c16eb784e5f35ca816fa22e0c0e060417 02-Mar-2011 John McCall <rjmccall@apple.com> Support a new InheritableAttr subclass, InheritableParamAttr, which is
used for attributes that are okay to inherit when written on a parameter.
Dependent on LLVM r126827.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
192e7f7e7f0493f7cdfda1d752e6de340d4e3ffe 26-Jan-2011 Peter Collingbourne <peter@pcc.me.uk> Move InheritableAttr::isInherited to Attr

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
fa75e614683e94ff2e0bd651b1722935a2507758 26-Jan-2011 Peter Collingbourne <peter@pcc.me.uk> Remove Attr::isMerged; it is not used any more and redundant with
InheritableAttr

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
a97d70b7ea9633e8cbf976510d7a9ea66f4ac96c 21-Jan-2011 Peter Collingbourne <peter@pcc.me.uk> Generalise support for non-inheritable attributes

Inheritable attributes on declarations may be inherited by any later
redeclaration at merge time. By contrast, a non-inheritable attribute
will not be inherited by later redeclarations. Non-inheritable
attributes may be semantically analysed early, allowing them to
influence the redeclaration/overloading process.

Before this change, the "overloadable" attribute received special
handling to be treated as non-inheritable, while all other attributes
were treated as inheritable. This patch generalises the concept,
while removing a FIXME. Some CUDA location attributes are also marked
as non-inheritable in order to support special overloading semantics
(to be introduced in a later patch).

The patch introduces a new Attr subclass, InheritableAttr, from
which all inheritable attributes derive. Non-inheritable attributes
simply derive from Attr.

N.B. I did not review every attribute to determine whether it should
be marked non-inheritable. This can be done later on an incremental
basis, as this change does not affect default functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
4ba2a17694148e16eaa8d3917f657ffcd3667be4 12-Jan-2011 Jay Foad <jay.foad@gmail.com> PR3558: mark "logically const" accessor methods in ASTContext as const,
and mark the fields they use as mutable. This allows us to remove a few
const_casts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
a87cdc03f4014545a8440110c1f4f68701100576 19-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Remove default argument from operator delete; per report on cfe-dev, fixes
compilation with MSVC. Note that on other platforms, the operator delete in
question is never used because we compile with -fno-exceptions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
1bf8d6f3a9dc636c3d1217d6fff11acf358e44be 19-Aug-2010 Sean Hunt <scshunt@csclub.uwaterloo.ca> Add a missing initializer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
cf807c4dfdb23e8fa3f400e0b24ef5b79db7a530 19-Aug-2010 Sean Hunt <scshunt@csclub.uwaterloo.ca> Generate Attr subclasses with TableGen.

Now all classes derived from Attr are generated from TableGen.
Additionally, Attr* is no longer its own linked list; SmallVectors or
Attr* are used. The accompanying LLVM commit contains the updates to
TableGen necessary for this.

Some other notes about newly-generated attribute classes:

- The constructor arguments are a SourceLocation and a Context&,
followed by the attributes arguments in the order that they were
defined in Attr.td

- Every argument in Attr.td has an appropriate accessor named getFoo,
and there are sometimes a few extra ones (such as to get the length
of a variadic argument).

Additionally, specific_attr_iterator has been introduced, which will
iterate over an AttrVec, but only over attributes of a certain type. It
can be accessed through either Decl::specific_attr_begin/end or
the global functions of the same name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
a8fb24fa3151567056f6125999cea69e39604f35 17-Aug-2010 Fariborz Jahanian <fjahanian@apple.com> Patch to add type parameter support for attribute iboutletcollection.
Radar 8308053.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
2a479929f70d32f626778ef6e70ef46d3a37f74e 12-Aug-2010 Jordy Rose <jediknil@belkadan.com> Remove OwnershipAttr::Kind, since it's essentially redundant with attr::Kind the way it's being used. Also fix isa<OwnershipAttr> support, break more-than-80-char lines, and other miscellaneous ownership attr cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
aa8b0d19244a6e7e8e5798fcc6aef003c274d3e0 05-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Implement #pragma GCC visibility.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
dd0e490c24aeade2c59ca4cae171199f6af9f02e 31-Jul-2010 Ted Kremenek <kremenek@apple.com> After a lengthy design discussion, add support for "ownership attributes" for malloc/free checking. Patch by Andrew McGregor!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
1de22a26c0e126b08edb2eda9d9091c021d96dc6 25-Jul-2010 Douglas Gregor <dgregor@apple.com> I lied. Kill off a few more Destroy methods

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
4ced79f0971592e6e7122037de69ee9ae534ce72 25-Jun-2010 Chandler Carruth <chandlerc@gmail.com> Implement dependent alignment attribute support. This is a bit gross given the
current attribute system, but it is enough to handle class templates which
specify parts of their alignment in terms of their template parameters.

This also replaces the attributes test in SemaTemplate with one that actually
tests working attributes instead of broken ones. I plan to add more tests here
for non-dependent attributes in a subsequent patch.

Thanks to John for walking me through some of this. =D


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
7255a2d997b15beae82e627052fdb1b2474495c2 22-Jun-2010 Chris Lattner <sabre@nondot.org> implement support for -finstrument-functions, patch by Nelson
Elhage!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
521f12d3dfdbb0e93d1bcb503d074e67acdc489c 18-Jun-2010 Fariborz Jahanian <fjahanian@apple.com> Implements Sema part of init_priority(priority) attribute
(radar 8076356) - wip.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
387475d0c18aaeb022108de9d33b6c9fb7998843 17-Jun-2010 Sean Hunt <rideau3@gmail.com> Implement first TD-based usage of attributes.

Currently, there are two effective changes:

- Attr::Kind has been changed to attr::Kind, in a separate namespace
rather than the Attr class. This is because the enumerator needs to
be visible to parse.
- The class definitions for the C++0x attributes other than aligned are
generated by TableGen.

The specific classes generated by TableGen are controlled by an array in
TableGen (see the accompanying commit to the LLVM repository). I will be
expanding the amount of code generated as I develop the new attributes system
while initially keeping it confined to these attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
4e9255f4ad5f87217995eeb488a7c5b336bb732d 27-May-2010 Daniel Dunbar <daniel@zuster.org> AST: Add AlignMac68kAttr, not yet used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
8a2c92cab213bd7e28ff669577e815cd70bafbe3 27-May-2010 Daniel Dunbar <daniel@zuster.org> AST: Rename PragmaPackAttr to MaxFieldAlignmentAttr, which is more accurate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
857e918a8a40deb128840308a318bf623d68295f 19-May-2010 Ted Kremenek <kremenek@apple.com> Add clang support for IBOutletCollection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
f813a2c03fcb05381b3252010435f557eb6b3cde 18-May-2010 Douglas Gregor <dgregor@apple.com> Add support for Microsoft's __thiscall, from Steven Watanabe!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
11e8ce7380856abee188b237c2600272df2ed09d 23-Feb-2010 Rafael Espindola <rafael.espindola@gmail.com> Add support for the weakref attribute. We still produce "alias weak" as llvm-gcc does, but are more strict on what uses of weakref we accept.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
31c780d95a830f0187cfcbb1016ce88f50a7dfe1 18-Feb-2010 Ted Kremenek <kremenek@apple.com> Add 'ns_returns_not_retained' and 'cf_returns_not_retained' attributes to
match 'ns_returns_retained' and 'cf_returns_retained' respectively. These
are not yet hooked up to the static analyzer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
3f477eabe90c55ad65ab70b1a3abd77060fbec06 17-Feb-2010 Ted Kremenek <kremenek@apple.com> Change GNUInlineAttr definition to just use DEF_SIMPLE_ATTR.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
efbddd23173ea5633cc8a004f1014c68c3ac6593 17-Feb-2010 Ted Kremenek <kremenek@apple.com> Add IBAction attribute to keep the IBOutlet attribute company.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
5961611172f1c210fbbaa55b3c692e13b1fc7be4 11-Feb-2010 Ted Kremenek <kremenek@apple.com> Use the allocator associated with ASTContext to allocate the args
array associated with NonNullAttr. This fixes yet another leak when
ASTContext uses a BumpPtrAllocator.

Fixes: <rdar://problem/7637150>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
3d2c43e9a7ca55f5ddc1f0c77d8f5e5ea7c1b573 11-Feb-2010 Ted Kremenek <kremenek@apple.com> Remove use of 'std::string' from Attr objects, using instead a byte
array allocated using the allocator in ASTContext. This addresses
these strings getting leaked when using a BumpPtrAllocator (in
ASTContext).

Fixes: <rdar://problem/7636765>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
5a0164d6ab843ca61437ec59a504365cb1c98f43 11-Feb-2010 Charles Davis <cdavis@mines.edu> Add support for the force_align_arg_pointer attribute. This is an x86-specific
attribute, so it uses Anton's new target-specific attribute support. It's
supposed to ensure that the stack is 16-byte aligned, but since necessary
support is lacking from LLVM, this is a no-op for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
fc5d5133357e36b9b83edd7cd10080d783f19010 10-Jan-2010 Anton Korobeynikov <asl@math.spbu.ru> Make clone() method out-of-line for Attr classes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
82d0a418c8699fc6f4a9417457ffe93d43bba1c1 10-Jan-2010 Anton Korobeynikov <asl@math.spbu.ru> Generalize target weirdness handling having proper layering in mind:
1. Add helper class for sema checks for target attributes
2. Add helper class for codegen of target attributes

As a proof-of-concept - implement msp430's 'interrupt' attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
bb377edda2656752016a0bc01fe4f9f8b6f80e19 30-Nov-2009 Benjamin Kramer <benny.kra@googlemail.com> Use StringRef in Attr constructors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
7725e67639fa2fe74f8775b7ed884a076ffdbffc 25-Nov-2009 Sean Hunt <rideau3@gmail.com> Parse C++ member check attributes - base_check, hiding, and override.
The attributes are currently ignored.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
bbd37c62e34db3f5a95c899723484a76c71d7757 21-Nov-2009 Sean Hunt <rideau3@gmail.com> Added rudimentary C++0x attribute support.
The following attributes are currently supported in C++0x attribute
lists (and in GNU ones as well):
- align() - semantics believed to be conformant to n3000, except for
redeclarations and what entities it may apply to
- final - semantics believed to be conformant to CWG issue 817's proposed
wording, except for redeclarations
- noreturn - semantics believed to be conformant to n3000, except for
redeclarations
- carries_dependency - currently ignored (this is an optimization hint)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
8f4c59e912f08919bd051fbca3d0dd2b90382ab3 09-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Add support for cdecl attribute. (As far as I know, it doesn't affect CodeGen
unless we start implementing command-line switches which override the default
calling convention, so the effect is mostly to silence unknown attribute
warnings.)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
67f594c0a0f285df815fe8eb64c59d4c23f99949 17-Oct-2009 Daniel Dunbar <daniel@zuster.org> Remove a FIXME that doesn't belong, there are numerous other places that use
alignment in bits in clang. If we really want to fix this, it should be a bugzilla.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
8cf7a1a6dd284a356d0cc69448e35f9b13a7b35a 06-Oct-2009 Mike Stump <mrs@apple.com> This is slightly contentious, but, if llvm has gone to addressable
units, we should as well. The problem is the non-predictability of
the dimension of the values. I'd love for the dimension to be part of
the static type system... but in C++ it is kinda annoying to do.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
1feade8e520be483293dbf55eb57a51720899589 27-Aug-2009 Mike Stump <mrs@apple.com> Regularize the case and sort.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
d406bf0e8c17012110a8476d03c6f9a97b56ecf7 16-Aug-2009 Anders Carlsson <andersca@mac.com> Move builtin call checking out into a separate function, make CheckFunctionCall and CheckBlockCall return bool instead. No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
76168e289ca4b307259e3bc9b3353f03b05bb6b9 09-Aug-2009 Ryan Flynn <pizza@parseerror.com> map previously ignored __attribute((malloc)) to noalias attribute of llvm function's return

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
a860e755f1f9f071b6a6a2f96128a6a258f5c331 08-Aug-2009 Anders Carlsson <andersca@mac.com> Introduce a new PragmaPack attribute, and use it for #pragma pack. The PackedAttr now only represents __attribute__((packed)).

This is necessary because #pragma pack and __attribute__((packed)) have different semantics. No functionality change yet, but this lays the groundwork for fixing a record layout bug.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
6f3d838867538638b9bbf412028e8537ae12f3e5 26-Jun-2009 Nate Begeman <natebegeman@mac.com> OpenCL 1.0 support: attributes


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
9509108b3dde280dca1999b5c054f5b789581e68 13-Jun-2009 Chris Lattner <sabre@nondot.org> declare an 'operator delete' to match operator new, this avoids many many
warnings when building with VC++, patch by AlisdairM!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
5b160927672440076aa53c31d84149f70fd8d40e 20-May-2009 Fariborz Jahanian <fjahanian@apple.com> implementation of format_arg for ObjC methods/functions.
Still more to do.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
5b53005fb9ef24b8bdfe995f29b4662de468128a 13-May-2009 Fariborz Jahanian <fjahanian@apple.com> Some early declarations to support sentinel attribute on
message dispatches (and function calls later). No change in
functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
b71368d28532908ae1c2dc23f91761781205b3d0 09-May-2009 Ted Kremenek <kremenek@apple.com> Add back Parse/Sema support for attributes cf_returns_retained and
ns_returns_retained, but do not include the other ownership attributes
we previously had.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
008fc73ac971e5d30c8710e37e1f5f8a843052f1 08-May-2009 Ted Kremenek <kremenek@apple.com> Remove experimental ownership attributes from Clang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
69aa08072decc20094bd1f75f4f9842e9bd357ad 05-May-2009 Ted Kremenek <kremenek@apple.com> Implement attribute 'ns_autorelease'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
e351aa10dab6eb8b9b502166c7035dc7b0e723e0 05-May-2009 Ted Kremenek <kremenek@apple.com> Implement attribute 'cf_returns_owned' (mirrors 'ns_returns_owned').


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
d99b345a1ae77c746ef025e6a050908d69e2c543 05-May-2009 Ted Kremenek <kremenek@apple.com> Remove experimental attribute 'ns_ownership_make_collectable.'


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70940 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
75494ffb4ed3964fa22fb9ab15fddecedbc9fe10 04-May-2009 Ted Kremenek <kremenek@apple.com> Rename attributes 'objc_ownership...' to 'ns_ownership...'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
31c215e62031b14e85c2f695c261817c044b465b 04-May-2009 Ted Kremenek <kremenek@apple.com> Rename attributes:
'objc_ownership_cfretain' -> 'cf_ownership_retain'
'objc_ownership_cfrelease' -> 'cf_ownership_release'

Motivation: Core Foundation objects can be used in isolation from Objective-C,
and this forces users to reason about the separate semantics of CF objects. More
Sema support pending.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
0c74e8a4e8865ec9ebb8efc0af247a3c077236c4 30-Apr-2009 Douglas Gregor <dgregor@apple.com> Implement semantic analysis for transparent unions. This is largely
based on a patch from Anders Johnsen. CodeGen support is incomplete,
in that we do not properly coerce to the first field's type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
bf20dbdec6ab7d02e96fac937ad57b2b95c0675c 29-Apr-2009 Ted Kremenek <kremenek@apple.com> Implement ownership attribute 'objc_ownership_make_collectable'. This allows one
to add 'CFMakeCollectable' semantics to a method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
9f9bf258f8ebae30bfb70feb9d797d6eb67b0460 28-Apr-2009 Douglas Gregor <dgregor@apple.com> Improve compatibility with GCC regarding inline semantics in GNU89
mode and in the presence of __gnu_inline__ attributes. This should fix
both PR3989 and PR4069.

As part of this, we now keep track of all of the attributes attached
to each declaration even after we've performed declaration
merging. This fixes PR3264.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
c6a59e4bf225c7f8152faca72897321f0f6cabd1 27-Apr-2009 Ted Kremenek <kremenek@apple.com> Add two new checker-specific attributes: 'objc_ownership_release' and
'objc_ownership_cfrelease'. These are the 'release' equivalents of
'objc_ownership_retain' and 'objc_ownership_cfretain' respectively.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
4064de959853503d9b87065adac1b277fff8af20 27-Apr-2009 Ted Kremenek <kremenek@apple.com> Add new checker-specific attribute 'objc_ownership_cfretain'. This is the same
as 'objc_ownership_cfretain' except that the method acts like a CFRetain instead
of a [... retain] (important in GC modes). Checker support is wired up, but
currently only for Objective-C message expressions (not function calls).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
de9a81b92e9098daa8ca19df138e4807b4d8afe8 25-Apr-2009 Ted Kremenek <kremenek@apple.com> Add new checker-specific attribute 'objc_ownership_retain'. This isn't hooked up
to the checker yet, but essentially it allows a user to specify that an
Objective-C method or C function increments the reference count of a passed
object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
0fc169e864aef7fc9a782e60b222a360f406704a 25-Apr-2009 Ted Kremenek <kremenek@apple.com> Add new checker-specific attribute 'objc_ownership_returns'. This isn't hooked
up to the checker yet, but essentially it allows a user to specify that an
Objective-C method or C function returns an owned an Objective-C object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
cf2a7211b4785068c7efa836baab90b198a4d2a6 20-Apr-2009 Chris Lattner <sabre@nondot.org> the __gnuc_inline__ attribute is actually named __gnu_inline__,
PR4023


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
68a2eb0cc76267ba0615992fb5e0977853c397b2 15-Apr-2009 Douglas Gregor <dgregor@apple.com> PCH support for declaration attributes

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
26e25545b26ec06f5d674dbae00fb168e6688d90 14-Apr-2009 Chris Lattner <sabre@nondot.org> recognize the gnuc_inline attribute.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
c1da56ef012d02c77c13689f4ca1a2e4f002eb2a 10-Apr-2009 Chris Lattner <sabre@nondot.org> fix indentation


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
b725232b46e92f3e36b03a32a6fc75748c312122 10-Apr-2009 Ted Kremenek <kremenek@apple.com> Implement attribute "analyzer_noreturn" (<rdar://problem/6777003>). This allows
clients of the analyzer to designate custom assertion routines as "noreturn"
functions from the analyzer's perspective but not the compiler's.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
1102f4282ceb430dbc9fcedb9dd2ad25898a09e8 04-Apr-2009 Anton Korobeynikov <asl@math.spbu.ru> Basic support for regparm codegen

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
55d3aaf9a537888734762170823daf750ea9036d 27-Mar-2009 Eli Friedman <eli.friedman@gmail.com> Finish off semantic analysis for regparm, and remove the warning. Also
remove a redundant error in CodeGen.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
ee760330a415635369556796a97afcfd6207f4dc 27-Mar-2009 Fariborz Jahanian <fjahanian@apple.com> Besides the warning, issue unsupported diagnostics in
ir gen. No intended change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
6e775dbafba2ab6634decc489eb3b4301b4b506b 06-Mar-2009 Daniel Dunbar <daniel@zuster.org> Add Parse/Sema support for weak_import attribute.
- Also, diagnose weak applied to types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
0b2b6e1cb1573bb295c0a65813dc4df8d57f305b 04-Mar-2009 Chris Lattner <sabre@nondot.org> Switch attributes to be allocated from the declcontext bump pointer just like
decls. This reduces the number of calls to malloc on cocoa.h with pth and
-disable-free from 15958 to 12444 times (down ~3500).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
cc5814732edc0c382d0136ab57ec6149566043e2 04-Mar-2009 Chris Lattner <sabre@nondot.org> add an a Attr::Destroy method and force clients to go through it. As part of
this, make DeclBase::Destroy destroy attributes instead of the DeclBase dtor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
5bab788d40026ad6e932a3cd9b86bc13f8a27661 19-Feb-2009 Anders Carlsson <andersca@mac.com> Add sema support for the noinline attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
ba372b85524f712e5b97a176f6ce0197d365835d 18-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Cleanup objc's gc attributes code no longer needed.
This make warn-weak-field.m to fail (subject of
a followup patch).
attr-objc-gc.m no passes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
3c385e5f8d9008fff18597ca302be19fa86e51f6 14-Feb-2009 Douglas Gregor <dgregor@apple.com> Add hook to add attributes to function declarations that we know
about, whether they are builtins or not. Use this to add the
appropriate "format" attribute to NSLog, NSLogv, asprintf, and
vasprintf, and to translate builtin attributes (from Builtins.def)
into actual attributes on the function declaration.

Use the "printf" format attribute on function declarations to
determine whether we should do format string checking, rather than
looking at an ad hoc list of builtins and "known" function names.

Be a bit more careful about when we consider a function a "builtin" in
C++.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
0db29ece81d360dcefbe912339c34abe5917f6a9 14-Feb-2009 Chris Lattner <sabre@nondot.org> add parser and type checking support for attribute((objc_exception)).
We don't have "zero cost" exceptions for ObjC yet, so there is no codegen
support required.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
026dc96ac6ece60da5e1b98e2a71bd0ff0939fd8 14-Feb-2009 Chris Lattner <sabre@nondot.org> Several related changes:
1) implement parser and sema support for reading and verifying attribute(warnunusedresult).
2) rename hasLocalSideEffect to isUnusedResultAWarning, inverting the sense
of its result.
3) extend isUnusedResultAWarning to directly return the loc and range
info that should be reported to the user. Make it substantially more
precise in some cases than what was previously reported.
4) teach isUnusedResultAWarning about CallExpr to decls that are
pure/const/warnunusedresult, fixing a fixme.
5) change warn_attribute_wrong_decl_type to not pass in english strings, instead,
pass in integers and use %select.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64543 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
b805dad4aa386aeae0f72512895bd238678d37a5 13-Feb-2009 Daniel Dunbar <daniel@zuster.org> Sema/AST support for attribute used. Patch by Anders Johnson (with small tweaks & test case)!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
d87df37e0adaba0d5e33da7b1a14d7f1d94c5eef 13-Feb-2009 Anders Carlsson <andersca@mac.com> Add sema support for the nodebug attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
ae17094c001972a5949944a0a77ef6adf2a92c8f 13-Feb-2009 Douglas Gregor <dgregor@apple.com> Tighten checking of the "overloadable" attribute. If any function by a
given name in a given scope is marked as "overloadable", every
function declaration and definition with that same name and in that
same scope needs to have the "overloadable" attribute. Essentially,
the "overloadable" attribute is not part of attribute merging, so it
must be specified even for redeclarations. This keeps users from
trying to be too sneaky for their own good:

double sin(double) __attribute__((overloadable)); // too sneaky
#include <math.h>

Previously, this would have made "sin" overloadable, and therefore
given it a mangled name. Now, we get an error inside math.h when we
see a (re)declaration of "sin" that doesn't have the "overloadable"
attribute.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
17f194f4393a67fd28ad822c06d32b8cb99bad3f 12-Feb-2009 Daniel Dunbar <daniel@zuster.org> Support __attribute__(section(<name>))


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
f9201e0ff1779567150b70856753d9f2c6a91467 12-Feb-2009 Douglas Gregor <dgregor@apple.com> Initial implementation of function overloading in C.

This commit adds a new attribute, "overloadable", that enables C++
function overloading in C. The attribute can only be added to function
declarations, e.g.,

int *f(int) __attribute__((overloadable));

If the "overloadable" attribute exists on a function with a given
name, *all* functions with that name (and in that scope) must have the
"overloadable" attribute. Sets of overloaded functions with the
"overloadable" attribute then follow the normal C++ rules for
overloaded functions, e.g., overloads must have different
parameter-type-lists from each other.

When calling an overloaded function in C, we follow the same
overloading rules as C++, with three extensions to the set of standard
conversions:

- A value of a given struct or union type T can be converted to the
type T. This is just the identity conversion. (In C++, this would
go through a copy constructor).
- A value of pointer type T* can be converted to a value of type U*
if T and U are compatible types. This conversion has Conversion
rank (it's considered a pointer conversion in C).
- A value of type T can be converted to a value of type U if T and U
are compatible (and are not both pointer types). This conversion
has Conversion rank (it's considered to be a new kind of
conversion unique to C, a "compatible" conversion).

Known defects (and, therefore, next steps):
1) The standard-conversion handling does not understand conversions
involving _Complex or vector extensions, so it is likely to get
these wrong. We need to add these conversions.
2) All overloadable functions with the same name will have the same
linkage name, which means we'll get a collision in the linker (if
not sooner). We'll need to mangle the names of these functions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
f6e35d0b9f1e9f1b4c5d3ef924415fa5e7c89849 31-Jan-2009 Anders Carlsson <andersca@mac.com> Add sema support for the cleanup attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
fa23c1d9adc99c662c1c0e192817185809d95614 14-Jan-2009 Fariborz Jahanian <fjahanian@apple.com> Implemenent objective-c's NSObject attribute as a way of ddeclaraing c-type
objects as an objective-c object.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
fc820a4394a33e4fccfd8283909d425708311d41 29-Dec-2008 Fariborz Jahanian <fjahanian@apple.com> Remove hasKind(). Use existing getKind().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
2f402708e62f89fb875442802e3d3f20fc909d33 26-Dec-2008 Anton Korobeynikov <asl@math.spbu.ru> Add full dllimport / dllexport support: both sema checks and codegen.
Patch by Ilya Okonsky

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
bc1c877fe28fb6a825f0b226a0a2da99e713ea03 17-Dec-2008 Fariborz Jahanian <fjahanian@apple.com> Semantics of @protocol attributes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
af668b0e7d3581dea3b4f29a9262686e83887e5b 28-Oct-2008 Daniel Dunbar <daniel@zuster.org> Add attribute always_inline support.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
3b0db908ebd07eaa26bc90deba5e826de00fe515 16-Oct-2008 Daniel Dunbar <daniel@zuster.org> Implement #pragma pack use in structure packing. The general approach
is to encode the state of the #pragma pack stack as an attribute when
the structure is declared.

- Extend PackedAttr to take an alignment (in bits), and reuse for
both __attribute__((packed)) (which takes no argument, instead
packing tightly (to "minimize the memory required") and for #pragma
pack (which allows specification of the maximum alignment in
bytes). __attribute__((packed)) is just encoded as Alignment=1.

This conflates two related but different mechanisms, but it didn't
seem worth another attribute.

- I have attempted to follow the MSVC semantics as opposed to the gcc
ones, since if I understand correctly #pragma pack originated with
MSVC. The semantics are generally equivalent except when the stack
is altered during the definition of a structure; its not clear if
anyone does this in practice. See testcase if curious.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
232eb7d33b96ad8f99de3b5ae840421b3a7c6cb7 06-Oct-2008 Anders Carlsson <andersca@mac.com> Implement support for the const and pure attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
9eae5761c0691c0f11d7a823b8ee54f05786cbbe 18-Sep-2008 Steve Naroff <snaroff@apple.com> Finish pushing blocks attribute through the clang attribute machinery.
Also added a couple simple tests from the "gcc.apple" test suite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
aa0d25b44e510a5a62e7345f4fa3840a886841d2 24-Aug-2008 Anders Carlsson <andersca@mac.com> Add support for parsing the objc_gc attribute. Tests will come shortly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55269 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
55b0c192e1ce00513a000f4c98bed7da5cf152b8 05-Aug-2008 Ted Kremenek <kremenek@apple.com> Add missing "classof" methods to NonNullAttr, fixing a heisencrash.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
a80f8749f2968d19595ca2544114932bf0ca2c11 05-Aug-2008 Daniel Dunbar <daniel@zuster.org> Add more Parser/Sema support for GCC asm-label extension.
- ActOnDeclarator now takes an additional parameter which is the
AsmLabel if used. Its unfortunate that this bubbles up this high,
but we cannot just lump it in as an attribute without mistakenly
*accepting* it as an attribute.
- The actual asm-label itself is, however, encoded as an AsmLabelAttr
on the FunctionDecl.
- Slightly improved parser error recovery on malformed asm-labels.
- CodeGen support still missing...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
6bfed7e411adc46eaf616371f85f68305c6e6257 01-Aug-2008 Daniel Dunbar <daniel@zuster.org> Support constructor and destructor attributes in CodeGen

- There is an miscompilation issue remaining due to a poor
interaction between the delayed emission of static functions and
the emission of constructors, but that already existed prior to
this change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
3068ae0feb5d477477f45045f7ec9d0414fe57f3 01-Aug-2008 Daniel Dunbar <daniel@zuster.org> Support __attribute__(({con,de}structor)) in Parse & Sema
- Including possible priority argument
- In other news, the attribute parsing code really needs a cleanup


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
73798892751e378cbcdef43579c1d41685091fd0 25-Jul-2008 Ted Kremenek <kremenek@apple.com> Implemented Sema support for attribute "unused".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
ea7e97e14f2f1f9817d2ae8a25ec6ea652e5287f 22-Jul-2008 Argyrios Kyrtzidis <akyrtzi@gmail.com> Fix compilation error on GCC 4.3.0 ('memcpy' was not declared in this scope).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53934 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
584def7364f51e35bfcaf5c3c64673096533adda 22-Jul-2008 Ted Kremenek <kremenek@apple.com> Added path-sensitive checking for null pointer values passed to function arguments marked nonnull.
This implements <rdar://problem/6069935>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53891 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
eb2b2a3f1898f146c6e153a64ec58ec5e1750bd2 21-Jul-2008 Ted Kremenek <kremenek@apple.com> Added sema support for the nonnull attribute. Will add test cases soon.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
96329d4e07a9bcddb5a927892b70408c8fd8c474 16-Jul-2008 Ted Kremenek <kremenek@apple.com> Added parsing/sema support for __attribute__ ((IBOutlet)), a clang-specific attribute that the static analyzer will use to recognize what ivars are IBOutlets.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
d4cbda6292b321c2e7dce7f039d92918fee99b3a 08-Jun-2008 Nuno Lopes <nunoplopes@sapo.pt> implement the alias attirbute (in both Sema and Codegen)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
4f8d123e3e2c260de3377208106ddba87cee28b4 22-May-2008 Dan Gohman <gohman@apple.com> Move getAccessedFieldNo out of lib/AST/Expr.cpp into
lib/CodeGen/CGExpr.cpp and to change include/clang/AST/Attr.h to
use its own enum for visibility types instead of using
llvm::GlobalValue::VisibilityTypes. These changes eliminate
dependencies in the AST library on LLVM's VMCore library.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
27ae6c6531ac13e4b316e7e0e7b7c846b61a8d15 25-Apr-2008 Nuno Lopes <nunoplopes@sapo.pt> initial support for recognizing __transparent_union__ attributes
comments on the ML will follow

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
440b456709526c4277e71d2e0ff49e5d88dc7b17 07-Mar-2008 Nate Begeman <natebegeman@mac.com> Add fastcall/stdcall attribute support
Generate CallingConv::Fast when fastcall attribute is present


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
ddee4231e9bdfbac1e1f5385ff1a17fd0e0b0e39 03-Mar-2008 Chris Lattner <sabre@nondot.org> Add a bunch of attributes, patch by Nuno Lopes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
7e669b25144c7cfae0e51d4098016d6982504dbd 29-Feb-2008 Chris Lattner <sabre@nondot.org> Add support for attribute(deprecated), patch by Nuno Lopes!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
aecb38368546aa2cdb58d53bbcb3e8ad46365fc6 27-Feb-2008 Ted Kremenek <kremenek@apple.com> Added support for attribute "noreturn."


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47689 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
c398f0b5efb2f8ba39cd5b0170cf697f714afbcb 21-Feb-2008 Nate Begeman <natebegeman@mac.com> Handle __attribute__((annotate("string")))


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47451 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
042c4e7e9f0b54104f4f2e098c028aa8247b6bed 16-Feb-2008 Anders Carlsson <andersca@mac.com> Better handling of the aligned attribute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
baa66fc389ca0a9f11e0c864304bcfd89de39439 16-Feb-2008 Anders Carlsson <andersca@mac.com> Address comments from Chris.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
adf21bdb3d17acfdb74657fcbc5035a404c6c8f4 16-Feb-2008 Anders Carlsson <andersca@mac.com> Store attributes in a global hash map instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
b0dd26825e58a5f2982fd6d4ffa4c4ae6e24ff17 16-Feb-2008 Anders Carlsson <andersca@mac.com> Store attributes in a global hash map instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
f78915fa196b3d284ad756f65eecadaefef71eef 15-Feb-2008 Anders Carlsson <andersca@mac.com> Get rid of AttributeList in the AST and use the new Attr class instead

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
81226601148d7e7c187b96c6ef86e83df204f59f 14-Feb-2008 Anders Carlsson <andersca@mac.com> Address comments from Chris.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h
d429cd459aef723fa0e7a44ac957d4c2256e241c 14-Feb-2008 Anders Carlsson <andersca@mac.com> Add Attr.h which is an AST-level class for GCC attributes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/AST/Attr.h