aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-pragma.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.co.uk>2003-01-01 12:27:02 +0000
committerNeil Booth <neil@gcc.gnu.org>2003-01-01 12:27:02 +0000
commitc58b209a5dbfc740b7fa58b54fcf876fe37fd941 (patch)
tree084056090b17ca08c6d590d93ec42d45ceee9b53 /gcc/c-pragma.c
parent7347c2c511c96c1300b8eaa1570107f4a5251016 (diff)
downloadgcc-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.c26
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
}