On Tue, 3 Feb 2015, Daniel Sanders wrote: > From: Toma Tabacu <toma.tabacu@xxxxxxxxxx> > > Differentiate the 'u' GAS .macro argument from the '\u' C preprocessor unicode > escape sequence by renaming it to '_u'. > > When the 'u' argument is evaluated, we end up writing '\u', which causes > clang to emit -Wunicode warnings. > > This silences a couple of -Wunicode warnings reported by clang. > The changed code can be preprocessed without warnings by both gcc and clang. I suspect it is a clang preprocessor bug that: 1. It interprets these character pairs as unicode escapes for assembly sources, I think it should be up to the language translator rather than the preprocessor, i.e. the assembler in this case (the notion of unicode escapes for the preprocessor appears to be limited to stringification, and then it is implementation-defined). 2. It considers these character pairs to be unicode escapes in the first place given that they do not follow the syntax required for such escapes, that is `\unnnn', where `n' are hex digits. Of course it may be reasonable for us to work this bug around as we've been doing for years with GCC, but has the issue been reported back to clang maintainers? What was their response? Maciej