erichkeane wrote: > @erichkeane So, looking why the `asm` attribute is written after the > visibility attribute, I see on > > https://github.com/llvm/llvm-project/blob/92266681bfc89b71d1846b68da296186cd8bfbec/clang/lib/Sema/SemaDecl.cpp#L8128 > : > > ``` > ProcessDeclAttributes(S, NewVD, D); > ``` > > which creates the VisibilityAttr. Then later on > > https://github.com/llvm/llvm-project/blob/92266681bfc89b71d1846b68da296186cd8bfbec/clang/lib/Sema/SemaDecl.cpp#L8223 > > ``` > if (Expr *E = D.getAsmLabel()) { > <...> > NewVD->addAttr(AsmLabelAttr::Create(Context, Label, > SE->getStrTokenLoc(0))); > } > ``` > > Which then creates the `asm` attribute. Hence the ASM attribute is created > after visibility attributes at least. The question now is which attributes > can be placed before an `asm` attribute which may resulted in this code > layout.
Ah, whew, so it IS just a handful that are inserted incorrectly! That is good to know. The `AsmLabelAttr` being a 'special' thing there is a little frustrating... however, does its order ever matter? I wouldn't expect so? So it at least shouldn't cause any problems, right? https://github.com/llvm/llvm-project/pull/162556 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
