X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fc-pragma.h;h=7911c5a65028fc5dad94a9acfe17bab388012857;hb=daa988f5c73e36f246b9571775dedb5a6b8af4d5;hp=49c39fa591e9503f42fc22e2f3a9aac29a44bc34;hpb=8d62a21cd3d8c4d8311bab2e02530218e76db6a7;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/c-pragma.h b/gcc/c-pragma.h index 49c39fa591e..7911c5a6502 100644 --- a/gcc/c-pragma.h +++ b/gcc/c-pragma.h @@ -1,46 +1,69 @@ /* Pragma related interfaces. - Copyright (C) 1995 Free Software Foundation, Inc. + Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002 + Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA +02111-1307, USA. */ -/* Support #pragma weak iff ASM_WEAKEN_LABEL and ASM_OUTPUT_DEF are - defined. */ -#if defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_DEF) +#ifndef GCC_C_PRAGMA_H +#define GCC_C_PRAGMA_H + +/* Cause the `yydebug' variable to be defined. */ +#define YYDEBUG 1 +extern int yydebug; + +struct cpp_reader; +extern struct cpp_reader* parse_in; + +#ifdef HANDLE_SYSV_PRAGMA +#if ((defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_WEAK_ALIAS)) \ + || defined (ASM_WEAKEN_DECL)) #define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK #endif -enum pragma_state -{ - ps_start, - ps_done, - ps_bad, - ps_weak, - ps_name, - ps_equals, - ps_value, - ps_pack, - ps_left, - ps_align, - ps_right -}; - -/* Output asm to handle ``#pragma weak'' */ -extern void handle_pragma_weak PROTO((enum pragma_state, char *, char *)); - -/* Handle a C style pragma */ -extern void handle_pragma_token PROTO((char *, tree)); +/* We always support #pragma pack for SYSV pragmas. */ +#ifndef HANDLE_PRAGMA_PACK +#define HANDLE_PRAGMA_PACK 1 +#endif +#endif /* HANDLE_SYSV_PRAGMA */ + + +#ifdef HANDLE_PRAGMA_PACK_PUSH_POP +/* If we are supporting #pragma pack(push... then we automatically + support #pragma pack() */ +#define HANDLE_PRAGMA_PACK 1 +#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ + +extern void init_pragma PARAMS ((void)); + +/* Duplicate prototypes for the register_pragma stuff and the typedef for + cpp_reader, to avoid dragging cpplib.h in almost everywhere... */ +#ifndef GCC_CPPLIB_H +typedef struct cpp_reader cpp_reader; + +extern void cpp_register_pragma PARAMS ((cpp_reader *, + const char *, const char *, + void (*) PARAMS ((cpp_reader *)))); +#endif + +extern void maybe_apply_pragma_weak PARAMS ((tree)); +extern tree maybe_apply_renaming_pragma PARAMS ((tree, tree)); +extern void add_to_renaming_pragma_list PARAMS ((tree, tree)); + +extern int c_lex PARAMS ((tree *)); + +#endif /* GCC_C_PRAGMA_H */