https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108941
--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> --- (In reply to jbeulich from comment #16) > I can only repeat: Unless the anomaly is properly called out in non-internal > documentation, I continue to think there's a bug here. And the reference to For inline asm, the only important things besides the exact values are the mode (for integral scalar modes that determines mostly how many bits it has), constraints (which determine where it can be passed and limit set of valid values) and optional modifiers which change how it is printed. > Clang getting it right, which you simply put off, isn't entirely meaningless > imo (I agree we're talking about a GNU extension here, but that doesn't > imply only GNU tools can get it right). Clang definitely doesn't implement the GNU extension correctly, far from it, because it broke the basic premise that it is a black box for the compiler on which it performs a text replacement. It instead parses and assembles the text, so behaves completely differently from how the extension was defined. So it can't be then safely used for optimization barriers, one can't use there something not really valid in the assembler etc.