diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-02-27 09:51:22 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-02-27 09:51:22 +0100 |
commit | a25a8f3be322fe0f838947b679f73d6efc2a412c (patch) | |
tree | 8f08c19e97ef9a3849f6682bc5e7ccb5dbe60947 /gcc/c-ppoutput.c | |
parent | 9cc028fa796f06b548b472d5ceeef2c1b9b3001c (diff) | |
download | gcc-a25a8f3be322fe0f838947b679f73d6efc2a412c.zip gcc-a25a8f3be322fe0f838947b679f73d6efc2a412c.tar.gz gcc-a25a8f3be322fe0f838947b679f73d6efc2a412c.tar.bz2 |
c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA and CPP_PRAGMA_EOL.
* c-ppoutput.c (scan_translation_unit): Handle CPP_PRAGMA
and CPP_PRAGMA_EOL.
* c-pragma.c (pragma_ns_name): New typedef.
(registered_pp_pragmas): New variable.
(c_pp_lookup_pragma): New function.
(c_register_pragma_1): If flag_preprocess_only, do nothing
for non-expanded pragmas, for expanded ones push pragma's
namespace and name into registered_pp_pragmas vector.
(c_invoke_pragma_handler): Register OpenMP pragmas even when
flag_preprocess_only, don't register GCC pch_preprocess
pragma if flag_preprocess_only.
* c-opts.c (c_common_init): Call init_pragma even if
flag_preprocess_only.
* c-pragma.c (c_pp_lookup_pragma): New prototype.
* config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Don't call
cpp_register_pragma if flag_preprocess_only.
* gcc.dg/gomp/preprocess-1.c: New test.
From-SVN: r132703
Diffstat (limited to 'gcc/c-ppoutput.c')
-rw-r--r-- | gcc/c-ppoutput.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/gcc/c-ppoutput.c b/gcc/c-ppoutput.c index f02d6cd..6a251fe 100644 --- a/gcc/c-ppoutput.c +++ b/gcc/c-ppoutput.c @@ -1,6 +1,6 @@ /* Preprocess only, using cpplib. - Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007 - Free Software Foundation, Inc. + Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2007, + 2008 Free Software Foundation, Inc. Written by Per Bothner, 1994-95. This program is free software; you can redistribute it and/or modify it @@ -177,7 +177,24 @@ scan_translation_unit (cpp_reader *pfile) avoid_paste = false; print.source = NULL; print.prev = token; - cpp_output_token (token, print.outf); + if (token->type == CPP_PRAGMA) + { + const char *space; + const char *name; + + maybe_print_line (token->src_loc); + fputs ("#pragma ", print.outf); + c_pp_lookup_pragma (token->val.pragma, &space, &name); + if (space) + fprintf (print.outf, "%s %s", space, name); + else + fprintf (print.outf, "%s", name); + print.printed = 1; + } + else if (token->type == CPP_PRAGMA_EOL) + maybe_print_line (token->src_loc); + else + cpp_output_token (token, print.outf); if (token->type == CPP_COMMENT) account_for_newlines (token->val.str.text, token->val.str.len); |