--- /dev/null
+/* { dg-do preprocess } */
+/* { dg-options "-pedantic-errors" } */
+
+#if 0xa == 10
+#error yes /* { dg-error "#error yes" "normal conversion" } */
+#endif
+
+#if 077 == 63
+#error yes /* { dg-error "#error yes" "normal conversion" } */
+#endif
+
+#if 12wrt /* { dg-error "nvalid number" "invalid number" } */
+#endif
+
+#if 0abc /* { dg-error "nvalid number" "invalid number" } */
+#endif
+
+#if 42abc /* { dg-error "nvalid number" "invalid number" } */
+#endif
+
+#if 1.2 /* { dg-error "floating point numbers" "floating point in #if" } */
+#endif
+
+#if 4uu /* { dg-error "too many `u' suffixes" "too many suffixes" } */
+#endif
+
+#if 124123231lll /* { dg-error "too many `l' suffixes" "too many suffixes" } */
+#endif
+
+#if 099 /* { dg-error "digits beyond the radix" "decimal in octal constant" } */
+#endif
+
+#if 0xfffffffffffffffff /* { dg-error "integer constant out of range" "range error" } */
+#endif
--- /dev/null
+/* { dg-do preprocess } */
+/* { dg-options -pedantic-errors } */
+
+#if 'a' == 'a' && '\001' == 1 && '\x12' == 0x12
+#error yes /* { dg-error "#error yes" "basic charconst recognition" } */
+#endif
+
+#if 'a' == L'a' && L'\xfeed' == 0xfeed
+#error yes /* { dg-error "#error yes" "wide charconst recognition" } */
+#endif
+
+#if 'abcd' /* { dg-warning "multi-character character constant" "multi-character charconst" } */
+#endif
+
+#if 'abcdefghi' /* { dg-error "character constant (is )?too long" "charconst too long" } */
+#endif
+
+#if '' /* { dg-error "empty character constant" "empty charconst" } */
+#endif