http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55678
Bug #: 55678 Summary: _Static_assert escapes tick marks just to make me mad Classification: Unclassified Product: gcc Version: 4.7.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: daniel.san...@pobox.com #define BUILD_BUG_ON(cond) _Static_assert(!(cond), #cond) void f() { const int a='4'; BUILD_BUG_ON(a == '4'); _Static_assert(0, "don't call static assert with zero, silly!"); } test.c: In function ‘f’: test.c:4:2: error: static assertion failed: "a == \'4\'" test.c:5:2: error: static assertion failed: "don\'t call static assert with zero, silly!" I found nothing in the standard that says to do escape any character, only §6.7.10 (of C11) that says you can choose to not print a character that's not in the basic source character set, but the single-quote/tick-mark is.