aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@apple.com>2003-07-21 21:25:47 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2003-07-21 21:25:47 +0000
commit48873ed202e108b84d10358932a8cbf02c41f15e (patch)
treeb8c3a0974d2bb92c973491e3808baf5224a7730d /gcc
parentdd039fc9e6cc2bf9214cb0ff87a07d0346829a59 (diff)
downloadgcc-48873ed202e108b84d10358932a8cbf02c41f15e.zip
gcc-48873ed202e108b84d10358932a8cbf02c41f15e.tar.gz
gcc-48873ed202e108b84d10358932a8cbf02c41f15e.tar.bz2
c-common.h (num_in_fnames): Declare.
* c-common.h (num_in_fnames): Declare. (c_static_assembler_name): Move from here... * c-tree.h (c_static_assembler_name): ... to here. * c-opts.c: Don't include langhooks-def.h. (c_static_assembler_name): Move to c-decl.c. (num_in_fnames): Make externally visible. * c-decl.c: Include langhooks-def.h. (c_static_assembler_name): Move from c-opts.c. * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H). (c-opts.o): Remove $(LANGHOOKS_DEF_H). From-SVN: r69650
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/Makefile.in6
-rw-r--r--gcc/c-common.h6
-rw-r--r--gcc/c-decl.c17
-rw-r--r--gcc/c-opts.c19
-rw-r--r--gcc/c-tree.h1
6 files changed, 38 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 87b9cc2..c36fb6f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -5,6 +5,17 @@
2003-07-21 Geoffrey Keating <geoffk@apple.com>
+ * c-common.h (num_in_fnames): Declare.
+ (c_static_assembler_name): Move from here...
+ * c-tree.h (c_static_assembler_name): ... to here.
+ * c-opts.c: Don't include langhooks-def.h.
+ (c_static_assembler_name): Move to c-decl.c.
+ (num_in_fnames): Make externally visible.
+ * c-decl.c: Include langhooks-def.h.
+ (c_static_assembler_name): Move from c-opts.c.
+ * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H).
+ (c-opts.o): Remove $(LANGHOOKS_DEF_H).
+
* c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME
when it's not needed.
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index dcffe35..384c0b7 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -1268,7 +1268,8 @@ c-incpath.o: c-incpath.c c-incpath.h $(CONFIG_H) $(SYSTEM_H) $(CPPLIB_H) \
c-decl.o : c-decl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
$(RTL_H) $(C_TREE_H) $(GGC_H) $(TARGET_H) flags.h function.h output.h \
$(EXPR_H) debug.h toplev.h intl.h $(TM_P_H) tree-inline.h $(TIMEVAR_H) \
- c-pragma.h gt-c-decl.h cgraph.h $(HASHTAB_H) libfuncs.h except.h
+ c-pragma.h gt-c-decl.h cgraph.h $(HASHTAB_H) libfuncs.h except.h \
+ $(LANGHOOKS_DEF_H)
c-typeck.o : c-typeck.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
$(TARGET_H) flags.h intl.h output.h $(EXPR_H) $(RTL_H) toplev.h $(TM_P_H)
c-lang.o : c-lang.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
@@ -1323,8 +1324,7 @@ c-pretty-print.o : c-pretty-print.c c-pretty-print.h pretty-print.h \
c-opts.o : c-opts.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
c-pragma.h flags.h toplev.h langhooks.h tree-inline.h diagnostic.h \
- intl.h debug.h $(C_COMMON_H) opts.h options.h $(PARAMS_H) \
- $(LANGHOOKS_DEF_H)
+ intl.h debug.h $(C_COMMON_H) opts.h options.h $(PARAMS_H)
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$< $(OUTPUT_OPTION) @TARGET_SYSTEM_ROOT_DEFINE@
diff --git a/gcc/c-common.h b/gcc/c-common.h
index 6f579ac..680774a 100644
--- a/gcc/c-common.h
+++ b/gcc/c-common.h
@@ -856,6 +856,11 @@ extern int max_tinst_depth;
extern int skip_evaluation;
+/* The count of input filenames. Only really valid for comparisons
+ against 1. */
+
+extern unsigned num_in_fnames;
+
/* C types are partitioned into three subsets: object, function, and
incomplete types. */
#define C_TYPE_OBJECT_P(type) \
@@ -905,7 +910,6 @@ extern void check_function_format (int *, tree, tree);
extern void set_Wformat (int);
extern tree handle_format_attribute (tree *, tree, tree, int, bool *);
extern tree handle_format_arg_attribute (tree *, tree, tree, int, bool *);
-extern void c_static_assembler_name (tree);
extern void c_common_insert_default_attributes (tree);
extern int c_common_handle_option (size_t code, const char *arg, int value);
extern void c_common_handle_filename (const char *filename);
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 990b4ef..92a8d85 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -52,6 +52,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "hashtab.h"
#include "libfuncs.h"
#include "except.h"
+#include "langhooks-def.h"
/* In grokdeclarator, distinguish syntactic contexts of declarators. */
enum decl_context
@@ -6771,6 +6772,22 @@ make_pointer_declarator (tree type_quals_attrs, tree target)
return build1 (INDIRECT_REF, quals, itarget);
}
+/* A wrapper around lhd_set_decl_assembler_name that gives static
+ variables their C names if they are at the top level and only one
+ translation unit is being compiled, for backwards compatibility
+ with certain bizzare assembler hacks (like crtstuff.c). */
+
+void
+c_static_assembler_name (tree decl)
+{
+ if (num_in_fnames == 1
+ && TREE_STATIC (decl) && !TREE_PUBLIC (decl) && DECL_CONTEXT (decl)
+ && TREE_CODE (DECL_CONTEXT (decl)) == TRANSLATION_UNIT_DECL)
+ SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl));
+ else
+ lhd_set_decl_assembler_name (decl);
+}
+
/* Hash and equality functions for link_hash_table: key off
DECL_ASSEMBLER_NAME. */
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index 44b6c1a..34e1d06 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -37,7 +37,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "debug.h" /* For debug_hooks. */
#include "opts.h"
#include "options.h"
-#include "langhooks-def.h"
#ifndef DOLLARS_IN_IDENTIFIERS
# define DOLLARS_IN_IDENTIFIERS true
@@ -54,7 +53,7 @@ static cpp_options *cpp_opts;
/* Input filename. */
static const char **in_fnames;
-static unsigned num_in_fnames;
+unsigned num_in_fnames;
static const char *this_input_filename;
/* Filename and stream for preprocessed output. */
@@ -1250,22 +1249,6 @@ c_common_finish (void)
fatal_error ("when writing output to %s: %m", out_fname);
}
-/* A wrapper around lhd_set_decl_assembler_name that gives static
- variables their C names if they are at the top level and only one
- translation unit is being compiled, for backwards compatibility
- with certain bizzare assembler hacks (like crtstuff.c). */
-
-void
-c_static_assembler_name (tree decl)
-{
- if (num_in_fnames == 1
- && TREE_STATIC (decl) && !TREE_PUBLIC (decl) && DECL_CONTEXT (decl)
- && TREE_CODE (DECL_CONTEXT (decl)) == TRANSLATION_UNIT_DECL)
- SET_DECL_ASSEMBLER_NAME (decl, DECL_NAME (decl));
- else
- lhd_set_decl_assembler_name (decl);
-}
-
/* Either of two environment variables can specify output of
dependencies. Their value is either "OUTPUT_FILE" or "OUTPUT_FILE
DEPS_TARGET", where OUTPUT_FILE is the file to write deps info to
diff --git a/gcc/c-tree.h b/gcc/c-tree.h
index fb12e7a..0a36609 100644
--- a/gcc/c-tree.h
+++ b/gcc/c-tree.h
@@ -230,6 +230,7 @@ extern tree xref_tag (enum tree_code, tree);
extern tree c_begin_compound_stmt (void);
extern void c_expand_deferred_function (tree);
extern void c_expand_decl_stmt (tree);
+extern void c_static_assembler_name (tree);
extern tree make_pointer_declarator (tree, tree);
extern void merge_translation_unit_decls (void);