giulianobelinassi added a comment. Hi, Aron.
Just to make myself clear: What I need to do is that the clang dumps for C files are also accepted by GCC as input. Here is why I wanted to output the attribute on middle: https://godbolt.org/z/6aPc6aWcz As you can see, GCC complains of `__attributes__` output on the right side of functions with bodies. But overall, perhaps what should be output in the dumps are the following (please check if you agree with me): 1- Attributes in variables should be output to the right side, as it was done before. That is: int var __attribute__((unused)) = 0; 2- Variables or functions declared with __declspec attributes should go to the left side, as does MSVC says is recommended. That is: __declspec(thread) int var = 0; __declspec(noinline) int f(void); __declspec(noinline) int f(void) { return 0; } 3- Functions __prototypes__ should have its attributes output to the right side, that means: int f(void) __attribute__((unused)); 4- But attributes specified in function declaration __with body__ should go to the __left__ side __because GCC rejects outputing them on the right side__, as: __attribute__((unused)) int f(void) { return 0; } ----- The result of this choice would be that the following K&R function __as input__ (notice how it is not clear where the __attribute__ is being applied to: int f(i) __attribute__((unused)) int i; { return 0; } would be dumped as: __attribute__((unused)) int f(i) int i; { return 0; } But in practical terms, GCC would accept it without problems and it is clear where the __attribute__ is being applied to. Outputting to the right side has some ambiguity here, which is what I want to avoid. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141714/new/ https://reviews.llvm.org/D141714 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits