================ @@ -493,9 +500,11 @@ class ParsedAttr final /// Set the macro identifier info object that this parsed attribute was /// declared in if it was declared in a macro. Also set the expansion location /// of the macro. - void setMacroIdentifier(IdentifierInfo *MacroName, SourceLocation Loc) { + void setMacroIdentifier(IdentifierInfo *MacroName, SourceLocation Loc, + bool PrintAsMac) { ---------------- AaronBallman wrote:
On the one hand, this seems like a natural thing to do -- if the user associated the attribute with a macro name, then defaulting to wanting to print it as the macro name makes sense. On the other hand, this feels like a layering violation -- the printing policy for the attribute really should be what determines whether it should or should not be printed as a macro because the use case may be for printing the expanded attribute name. e.g., `conflicting attribute 'MACRO_FOO' (aka 'foo')`, or when manually printing AST nodes as tools sometimes do. CC @erichkeane for more opinions. https://github.com/llvm/llvm-project/pull/107619 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits