OSDN Git Service

PR bootstrap/21215
[pf3gnuchains/gcc-fork.git] / gcc / c-pragma.h
index ea5a982..e6660b0 100644 (file)
@@ -1,5 +1,5 @@
 /* Pragma related interfaces.
 /* Pragma related interfaces.
-   Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002
+   Copyright (C) 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    Free Software Foundation, Inc.
 
 This file is part of GCC.
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -22,12 +22,17 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #ifndef GCC_C_PRAGMA_H
 #define GCC_C_PRAGMA_H
 
 #ifndef GCC_C_PRAGMA_H
 #define GCC_C_PRAGMA_H
 
-#ifdef HANDLE_SYSV_PRAGMA
-#if ((defined (ASM_WEAKEN_LABEL) && defined (ASM_OUTPUT_WEAK_ALIAS)) \
-     || defined (ASM_WEAKEN_DECL))
+#include <cpplib.h> /* For enum cpp_ttype.  */
+
+/* Cause the `yydebug' variable to be defined.  */
+#define YYDEBUG 1
+extern int yydebug;
+
+extern struct cpp_reader* parse_in;
+
 #define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK
 #define HANDLE_PRAGMA_WEAK SUPPORTS_WEAK
-#endif
 
 
+#ifdef HANDLE_SYSV_PRAGMA
 /* We always support #pragma pack for SYSV pragmas.  */
 #ifndef HANDLE_PRAGMA_PACK
 #define HANDLE_PRAGMA_PACK 1
 /* We always support #pragma pack for SYSV pragmas.  */
 #ifndef HANDLE_PRAGMA_PACK
 #define HANDLE_PRAGMA_PACK 1
@@ -41,18 +46,35 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #define HANDLE_PRAGMA_PACK 1
 #endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
 
 #define HANDLE_PRAGMA_PACK 1
 #endif /* HANDLE_PRAGMA_PACK_PUSH_POP */
 
-extern void init_pragma PARAMS ((void));
+/* It's safe to always leave visibility pragma enabled as if
+   visibility is not supported on the host OS platform the
+   statements are ignored.  */
+#define HANDLE_PRAGMA_VISIBILITY 1
 
 
-/* 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 init_pragma (void);
 
 
-extern void cpp_register_pragma PARAMS ((cpp_reader *,
-                                        const char *, const char *,
-                                        void (*) PARAMS ((cpp_reader *))));
-#endif
+/* Front-end wrappers for pragma registration to avoid dragging
+   cpplib.h in almost everywhere.  */
+extern void c_register_pragma (const char *, const char *,
+                              void (*) (struct cpp_reader *));
+extern void c_register_pragma_with_expansion (const char *, const char *,
+                                             void (*) (struct cpp_reader *));
+extern void maybe_apply_pragma_weak (tree);
+extern void maybe_apply_pending_pragma_weaks (void);
+extern tree maybe_apply_renaming_pragma (tree, tree);
+extern void add_to_renaming_pragma_list (tree, tree);
+
+extern enum cpp_ttype c_lex (tree *);
+extern enum cpp_ttype c_lex_with_flags (tree *, location_t *, unsigned char *);
+
+/* If 1, then lex strings into the execution character set.  
+   If 0, lex strings into the host character set.
+   If -1, lex both, and chain them together, such that the former
+   is the TREE_CHAIN of the latter.  */
+extern int c_lex_string_translate;
 
 
-extern void maybe_apply_pragma_weak PARAMS ((tree));
+/* If true, strings should be passed to the caller of c_lex completely
+   unmolested (no concatenation, no translation).  */
+extern bool c_lex_return_raw_strings;
 
 #endif /* GCC_C_PRAGMA_H */
 
 #endif /* GCC_C_PRAGMA_H */