GSoC/GCI Archive
Google Summer of Code 2010 LLVM Compiler Infrastructure

Easily Extensible Attributes in clang

by Sean Hunt for LLVM Compiler Infrastructure

The clang C/C++/Objective-C compiler currently handles three varieties of attributes - GCC attributes, MSVC attributes, and C++0x attributes - with varying approaches to each variety. This complexity is compounded by bad internal handling of attributes. This makes it difficult and complex to add a new attribute. This project intends to unify the approach taken to attributes and to make it very easy to add a new attribute and get it onto the AST, including some basic semantic checks.