// clang::attr::Kind doesn't currently cover the pure type attrs.
enum Kind {
// Expression operand.
- address_space,
- regparm,
- vector_size,
- neon_vector_type,
- neon_polyvector_type,
+ attr_address_space,
+ attr_regparm,
+ attr_vector_size,
+ attr_neon_vector_type,
+ attr_neon_polyvector_type,
- FirstExprOperandKind = address_space,
- LastExprOperandKind = neon_polyvector_type,
+ FirstExprOperandKind = attr_address_space,
+ LastExprOperandKind = attr_neon_polyvector_type,
// Enumerated operand (string or keyword).
- objc_gc,
+ attr_objc_gc,
- FirstEnumOperandKind = objc_gc,
- LastEnumOperandKind = objc_gc,
+ FirstEnumOperandKind = attr_objc_gc,
+ LastEnumOperandKind = attr_objc_gc,
// No operand.
attr_noreturn,
// TODO: not all attributes are GCC-style attributes.
S += "__attribute__((";
switch (T->getAttrKind()) {
- case AttributedType::address_space:
+ case AttributedType::attr_address_space:
S += "address_space(";
S += T->getEquivalentType().getAddressSpace();
S += ")";
break;
- case AttributedType::vector_size: {
+ case AttributedType::attr_vector_size: {
S += "__vector_size__(";
if (const VectorType *vector =T->getEquivalentType()->getAs<VectorType>()) {
S += vector->getNumElements();
break;
}
- case AttributedType::neon_vector_type:
- case AttributedType::neon_polyvector_type: {
- if (T->getAttrKind() == AttributedType::neon_vector_type)
+ case AttributedType::attr_neon_vector_type:
+ case AttributedType::attr_neon_polyvector_type: {
+ if (T->getAttrKind() == AttributedType::attr_neon_vector_type)
S += "neon_vector_type(";
else
S += "neon_polyvector_type(";
break;
}
- case AttributedType::regparm: {
+ case AttributedType::attr_regparm: {
S += "regparm(";
QualType t = T->getEquivalentType();
while (!t->isFunctionType())
break;
}
- case AttributedType::objc_gc: {
+ case AttributedType::attr_objc_gc: {
S += "objc_gc(";
QualType tmp = T->getEquivalentType();