]>
Commit | Line | Data |
---|---|---|
917aa082 | 1 | /* Pragma related interfaces. |
934f2848 | 2 | Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004 |
04641143 | 3 | Free Software Foundation, Inc. |
917aa082 | 4 | |
f12b58b3 | 5 | This file is part of GCC. |
917aa082 | 6 | |
f12b58b3 | 7 | GCC is free software; you can redistribute it and/or modify it under |
8 | the terms of the GNU General Public License as published by the Free | |
9 | Software Foundation; either version 2, or (at your option) any later | |
10 | version. | |
917aa082 | 11 | |
f12b58b3 | 12 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
13 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 | for more details. | |
917aa082 | 16 | |
17 | You should have received a copy of the GNU General Public License | |
f12b58b3 | 18 | along with GCC; see the file COPYING. If not, write to the Free |
19 | Software Foundation, 59 Temple Place - Suite 330, Boston, MA | |
20 | 02111-1307, USA. */ | |
917aa082 | 21 | |
2a281353 | 22 | #ifndef GCC_C_PRAGMA_H |
23 | #define GCC_C_PRAGMA_H | |
2f491b41 | 24 | |
90cc7820 | 25 | /* Cause the `yydebug' variable to be defined. */ |
26 | #define YYDEBUG 1 | |
27 | extern int yydebug; | |
28 | ||
90cc7820 | 29 | extern struct cpp_reader* parse_in; |
30 | ||
9a0ce7db | 31 | #define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK |
917aa082 | 32 | |
c37ac57f | 33 | #ifdef HANDLE_SYSV_PRAGMA |
a3fa7feb | 34 | /* We always support #pragma pack for SYSV pragmas. */ |
35 | #ifndef HANDLE_PRAGMA_PACK | |
36 | #define HANDLE_PRAGMA_PACK 1 | |
37 | #endif | |
38 | #endif /* HANDLE_SYSV_PRAGMA */ | |
39 | ||
40 | ||
41 | #ifdef HANDLE_PRAGMA_PACK_PUSH_POP | |
42 | /* If we are supporting #pragma pack(push... then we automatically | |
43 | support #pragma pack(<n>) */ | |
44 | #define HANDLE_PRAGMA_PACK 1 | |
a3fa7feb | 45 | #endif /* HANDLE_PRAGMA_PACK_PUSH_POP */ |
46 | ||
71e35e05 | 47 | extern void init_pragma (void); |
2f491b41 | 48 | |
eb180587 | 49 | /* Front-end wrapper for pragma registration to avoid dragging |
50 | cpplib.h in almost everywhere. */ | |
5a2784f8 | 51 | extern void c_register_pragma (const char *, const char *, |
52 | void (*) (struct cpp_reader *)); | |
71e35e05 | 53 | extern void maybe_apply_pragma_weak (tree); |
54 | extern tree maybe_apply_renaming_pragma (tree, tree); | |
55 | extern void add_to_renaming_pragma_list (tree, tree); | |
5626f4cd | 56 | |
71e35e05 | 57 | extern int c_lex (tree *); |
fe097a11 | 58 | extern int c_lex_with_flags (tree *, unsigned char *); |
90cc7820 | 59 | |
3fe7c943 | 60 | /* If 1, then lex strings into the execution character set. |
61 | If 0, lex strings into the host character set. | |
62 | If -1, lex both, and chain them together, such that the former | |
63 | is the TREE_CHAIN of the latter. */ | |
64 | extern int c_lex_string_translate; | |
ccb84981 | 65 | |
2a281353 | 66 | #endif /* GCC_C_PRAGMA_H */ |