Address comments from Chris.

llvm-svn: 47118
This commit is contained in:
Anders Carlsson 2008-02-14 07:43:43 +00:00
parent 26b76b69f4
commit b0aad621fd
1 changed files with 13 additions and 19 deletions

View File

@ -11,8 +11,8 @@
//
//===----------------------------------------------------------------------===//
#ifndef LLVM_CLANG_AST_EXPR_H
#define LLVM_CLANG_AST_EXPR_H
#ifndef LLVM_CLANG_AST_ATTR_H
#define LLVM_CLANG_AST_ATTR_H
namespace clang {
@ -20,39 +20,33 @@ namespace clang {
class Attr {
public:
enum Kind {
AddressSpace,
Aligned,
OCUVectorType,
Packed,
VectorSize
Packed
};
private:
Attr *next;
Attr *Next;
Kind AttrKind;
protected:
Attr(Kind AK) : AttrKind(AK) {}
virtual ~Attr() {
if (Next)
delete Next;
delete Next;
}
public:
Kind getKind() const { return AttrKind; }
Attr *getNext() const { return Next; }
void setNext(Attr *N) { Next = N; }
Attr *getNext() { return Next; }
const Attr *getNext() const { return Next; }
void setNext(Attr *next) { Next = next; }
void addAttr(Attr *attr) {
assert((attr != 0) && "addAttr(): attr is null");
Attr *next = this, *prev;
do {
prev = next;
next = next->getNext();
} while (next);
prev->setNext(attr);
// FIXME: This doesn't preserve the order in any way.
attr->Next = Next;
Next = attr;
}
// Implement isa/cast/dyncast/etc.