I'm not convinced by the approach here -- in particular, I don't think this will do the right thing for inherited attributes (where the source location will always be before the declaration). http://llvm-reviews.chandlerc.com/D395