]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/c-pragma.h
2004-06-25 Paolo Carlini <pcarlini@suse.de>
[thirdparty/gcc.git] / gcc / c-pragma.h
CommitLineData
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 5This file is part of GCC.
917aa082 6
f12b58b3 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.
917aa082 11
f12b58b3 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.
917aa082 16
17You should have received a copy of the GNU General Public License
f12b58b3 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. */
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
27extern int yydebug;
28
90cc7820 29extern 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 47extern void init_pragma (void);
2f491b41 48
eb180587 49/* Front-end wrapper for pragma registration to avoid dragging
50 cpplib.h in almost everywhere. */
5a2784f8 51extern void c_register_pragma (const char *, const char *,
52 void (*) (struct cpp_reader *));
71e35e05 53extern void maybe_apply_pragma_weak (tree);
54extern tree maybe_apply_renaming_pragma (tree, tree);
55extern void add_to_renaming_pragma_list (tree, tree);
5626f4cd 56
71e35e05 57extern int c_lex (tree *);
fe097a11 58extern 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. */
64extern int c_lex_string_translate;
ccb84981 65
2a281353 66#endif /* GCC_C_PRAGMA_H */