c-pragma.h revision 117395
1/* Pragma related interfaces. 2 Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002 3 Free Software Foundation, Inc. 4 5This file is part of GCC. 6 7GCC is free software; you can redistribute it and/or modify it under 8the terms of the GNU General Public License as published by the Free 9Software Foundation; either version 2, or (at your option) any later 10version. 11 12GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13WARRANTY; without even the implied warranty of MERCHANTABILITY or 14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15for more details. 16 17You should have received a copy of the GNU General Public License 18along with GCC; see the file COPYING. If not, write to the Free 19Software Foundation, 59 Temple Place - Suite 330, Boston, MA 2002111-1307, USA. */ 21 22#ifndef GCC_C_PRAGMA_H 23#define GCC_C_PRAGMA_H 24 25/* Cause the `yydebug' variable to be defined. */ 26#define YYDEBUG 1 27extern int yydebug; 28 29struct cpp_reader; 30extern struct cpp_reader* parse_in; 31 32#ifdef HANDLE_SYSV_PRAGMA 33#if ((defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_WEAK_ALIAS)) \ 34 || defined (ASM_WEAKEN_DECL)) 35#define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK 36#endif 37 38/* We always support #pragma pack for SYSV pragmas. */ 39#ifndef HANDLE_PRAGMA_PACK 40#define HANDLE_PRAGMA_PACK 1 41#endif 42#endif /* HANDLE_SYSV_PRAGMA */ 43 44 45#ifdef HANDLE_PRAGMA_PACK_PUSH_POP 46/* If we are supporting #pragma pack(push... then we automatically 47 support #pragma pack(<n>) */ 48#define HANDLE_PRAGMA_PACK 1 49#endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ 50 51extern void init_pragma PARAMS ((void)); 52 53/* Duplicate prototypes for the register_pragma stuff and the typedef for 54 cpp_reader, to avoid dragging cpplib.h in almost everywhere... */ 55#ifndef GCC_CPPLIB_H 56typedef struct cpp_reader cpp_reader; 57 58extern void cpp_register_pragma PARAMS ((cpp_reader *, 59 const char *, const char *, 60 void (*) PARAMS ((cpp_reader *)))); 61#endif 62 63extern void maybe_apply_pragma_weak PARAMS ((tree)); 64extern tree maybe_apply_renaming_pragma PARAMS ((tree, tree)); 65extern void add_to_renaming_pragma_list PARAMS ((tree, tree)); 66 67extern int c_lex PARAMS ((tree *)); 68 69#endif /* GCC_C_PRAGMA_H */ 70