summaryrefslogtreecommitdiffstats
path: root/contrib/gcclibs/libcpp/directives.c
diff options
context:
space:
mode:
authorpfg <pfg@FreeBSD.org>2014-01-12 21:16:26 +0000
committerpfg <pfg@FreeBSD.org>2014-01-12 21:16:26 +0000
commitf630f6f40f740cb8f2ee6f8b7ca4b87afe4549ed (patch)
tree1583542d675d7245df1abbe37fe4624d8013d8b1 /contrib/gcclibs/libcpp/directives.c
parentd54137712a89d020593dfb73ef2e0814051f5387 (diff)
downloadFreeBSD-src-f630f6f40f740cb8f2ee6f8b7ca4b87afe4549ed.zip
FreeBSD-src-f630f6f40f740cb8f2ee6f8b7ca4b87afe4549ed.tar.gz
MFC r260310:
libcpp: misc fixes from Apple's GCC. Fixes some bugs detected by Apple: #error with unmatched quotes pragma mark Obtained from: Apple GCC 4.2 - 5553
Diffstat (limited to 'contrib/gcclibs/libcpp/directives.c')
-rw-r--r--contrib/gcclibs/libcpp/directives.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/contrib/gcclibs/libcpp/directives.c b/contrib/gcclibs/libcpp/directives.c
index 7011842..bf781b6 100644
--- a/contrib/gcclibs/libcpp/directives.c
+++ b/contrib/gcclibs/libcpp/directives.c
@@ -991,7 +991,11 @@ do_diagnostic (cpp_reader *pfile, int code, int print_dir)
if (print_dir)
fprintf (stderr, "#%s ", pfile->directive->name);
pfile->state.prevent_expansion++;
+ /* APPLE LOCAL #error with unmatched quotes 5607574 */
+ pfile->state.in_diagnostic++;
cpp_output_line (pfile, stderr);
+ /* APPLE LOCAL #error with unmatched quotes 5607574 */
+ pfile->state.in_diagnostic--;
pfile->state.prevent_expansion--;
}
}
@@ -1173,12 +1177,25 @@ cpp_register_deferred_pragma (cpp_reader *pfile, const char *space,
}
}
+/* APPLE LOCAL begin pragma mark 5614511 */
+/* Handle #pragma mark. */
+static void
+do_pragma_mark (cpp_reader *pfile)
+{
+ ++pfile->state.skipping;
+ skip_rest_of_line (pfile);
+ --pfile->state.skipping;
+}
+/* APPLE LOCAL end pragma mark 5614511 */
+
/* Register the pragmas the preprocessor itself handles. */
void
_cpp_init_internal_pragmas (cpp_reader *pfile)
{
/* Pragmas in the global namespace. */
register_pragma_internal (pfile, 0, "once", do_pragma_once);
+ /* APPLE LOCAL pragma mark 5614511 */
+ register_pragma_internal (pfile, 0, "mark", do_pragma_mark);
/* New GCC-specific pragmas should be put in the GCC namespace. */
register_pragma_internal (pfile, "GCC", "poison", do_pragma_poison);
OpenPOWER on IntegriCloud