diff options
author | Neil Booth <neil@daikokuya.co.uk> | 2003-01-01 12:27:02 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2003-01-01 12:27:02 +0000 |
commit | c58b209a5dbfc740b7fa58b54fcf876fe37fd941 (patch) | |
tree | 084056090b17ca08c6d590d93ec42d45ceee9b53 /gcc/c-pragma.c | |
parent | 7347c2c511c96c1300b8eaa1570107f4a5251016 (diff) | |
download | gcc-c58b209a5dbfc740b7fa58b54fcf876fe37fd941.zip gcc-c58b209a5dbfc740b7fa58b54fcf876fe37fd941.tar.gz gcc-c58b209a5dbfc740b7fa58b54fcf876fe37fd941.tar.bz2 |
c-pragma.c (c_register_pragma): New.
* c-pragma.c (c_register_pragma): New.
(init_pragma): Use it.
* c-pragma.h (cpp_register_pragma): Don't declare.
(c_register_pragma): New.
* cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
* config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
* config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
* config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
* config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
* config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
* config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
* config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
* config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
* config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
* config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
* doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
cp:
* lex.c: Remove superfluous include of cpplib.h.
(CONSTRAINT): Define without conditions.
(init_cp_pragma): Use c_register_pragma.
From-SVN: r60740
Diffstat (limited to 'gcc/c-pragma.c')
-rw-r--r-- | gcc/c-pragma.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/gcc/c-pragma.c b/gcc/c-pragma.c index a2e4c68..d489cdc 100644 --- a/gcc/c-pragma.c +++ b/gcc/c-pragma.c @@ -1,5 +1,5 @@ /* Handle #pragma, system V.4 style. Supports #pragma weak and #pragma pack. - Copyright (C) 1992, 1997, 1998, 1999, 2000, 2001, 2002 + Copyright (C) 1992, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This file is part of GCC. @@ -483,26 +483,36 @@ maybe_apply_renaming_pragma (decl, asmname) return asmname; } +/* Front-end wrapper for pragma registration to avoid dragging + cpplib.h in almost everywhere. */ +void +c_register_pragma (space, name, handler) + const char *space; + const char *name; + void (*handler) PARAMS ((struct cpp_reader *)); +{ + cpp_register_pragma (parse_in, space, name, handler); +} + +/* Set up front-end pragmas. */ void init_pragma () { #ifdef HANDLE_PRAGMA_PACK - cpp_register_pragma (parse_in, 0, "pack", handle_pragma_pack); + c_register_pragma (0, "pack", handle_pragma_pack); #endif #ifdef HANDLE_PRAGMA_WEAK - cpp_register_pragma (parse_in, 0, "weak", handle_pragma_weak); + c_register_pragma (0, "weak", handle_pragma_weak); #endif #ifdef HANDLE_PRAGMA_REDEFINE_EXTNAME - cpp_register_pragma (parse_in, 0, "redefine_extname", - handle_pragma_redefine_extname); + c_register_pragma (0, "redefine_extname", handle_pragma_redefine_extname); #endif #ifdef HANDLE_PRAGMA_EXTERN_PREFIX - cpp_register_pragma (parse_in, 0, "extern_prefix", - handle_pragma_extern_prefix); + c_register_pragma (0, "extern_prefix", handle_pragma_extern_prefix); #endif #ifdef REGISTER_TARGET_PRAGMAS - REGISTER_TARGET_PRAGMAS (parse_in); + REGISTER_TARGET_PRAGMAS (); #endif } |