-enum Attributes {
- None = 0, ///< No attributes have been set
- ZExt = 1 << 0, ///< Zero extended before/after call
- SExt = 1 << 1, ///< Sign extended before/after call
- NoReturn = 1 << 2, ///< Mark the function as not returning
- InReg = 1 << 3, ///< Force argument to be passed in register
- StructRet = 1 << 4, ///< Hidden pointer to structure to return
- NoUnwind = 1 << 5, ///< Function doesn't unwind stack
- NoAlias = 1 << 6, ///< Considered to not alias after call
- ByVal = 1 << 7, ///< Pass structure by value
- Nest = 1 << 8, ///< Nested function static chain
- ReadNone = 1 << 9, ///< Function does not access memory
- ReadOnly = 1 << 10 ///< Function only reads from memory
-};
+
+/// @brief A more friendly way to reference the attributes.
+typedef uint32_t Attributes;
+
+const Attributes None = 0; ///< No attributes have been set
+const Attributes ZExt = 1<<0; ///< Zero extended before/after call
+const Attributes SExt = 1<<1; ///< Sign extended before/after call
+const Attributes NoReturn = 1<<2; ///< Mark the function as not returning
+const Attributes InReg = 1<<3; ///< Force argument to be passed in register
+const Attributes StructRet = 1<<4; ///< Hidden pointer to structure to return
+const Attributes NoUnwind = 1<<5; ///< Function doesn't unwind stack
+const Attributes NoAlias = 1<<6; ///< Considered to not alias after call
+const Attributes ByVal = 1<<7; ///< Pass structure by value
+const Attributes Nest = 1<<8; ///< Nested function static chain
+const Attributes ReadNone = 1<<9; ///< Function does not access memory
+const Attributes ReadOnly = 1<<10; ///< Function only reads from memory