Yes, that's why I mentioned that the problem was with using _Pragma "multiple times on a single line", and provided an example where the _Pragmas were on multiple lines and worked. Sorry, I could have made it a bit more explicit, but yeah I agree that the problem occurs when you use multiple _Pragma operators on a single line.
I'm not sure why you think multiple pragma operators on a single line would be wrong, though. The C11 specification defines the pragma operator in ยง 6.10.9:
A unary operator expression of the form:_Pragma ( string-literal )
is processed as follows: The string literal is destringized by deleting any encoding prefix, deleting the leading and trailing double-quotes, replacing each escape sequence \" by a double-quote, and replacing each escape sequence \\ by a single backslash. The resulting sequence of characters is processed through translation phase 3 to produce preprocessing tokens that are executed as if they were the pp-tokens in a pragma directive. The original four preprocessing tokens in the unary operator expression are removed.
That seems pretty clear to me; the pragmas should be treated separately "as if they were the
pp-tokens in a pragma directive", not mapped to an actual pragma directive without a new-line to terminate it.
It does mention that the pragma directive can also be expressed with a pragma operator, but I don't see anything to indicate that the operator should be converted by the compiler to an actual directive, much less one without a terminating new-line. It's also interesting that the direction of the example is from directive to operator, not operator to directive.