(Removing llvm-commits, adding cfe-commits) On Wed, Oct 7, 2015 at 8:07 PM, Adrian Zgorzalek via llvm-commits <llvm-comm...@lists.llvm.org> wrote: > Hey, > > Here is an attempt to fix https://llvm.org/bugs/show_bug.cgi?id=25067.
Thank you for working on this! > > Summary: > > After introducing no_sanitize, we try to map no_sanitize_* into a > no_sanitize(“*”), the switch in code, however doesn’t handle cases when > attribute is surrounded by two underscores on each of the ends. In this > patch I am trying to utilize existing normalizeAttrName function, by > exposing it to outside world and using it before feeding input to the > switch. > > Added unit tests for the crashes I encountered and patched. I am hesitant to expose a normalized attribute name API like that because very little should ever care about the actual spelling string of the attribute; instead, it should be looking at the semantic spelling or the (parsed) attribute kind. However, the no sanitize attributes are a bit strange in that they don't have different semantic spellings, but instead use the list of sanitizers, so that approach won't work. I think the better way to handle this is to refactor SemaDeclAttr.cpp to have a helper function named normalizeName() and use it in handleOwnershipAttr, handleFormatAttr, handleModeAttr, and handleNoSanitizeSpecificAttr. It can be used for normalizing attribute names as well as attribute argument names. ~Aaron _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits