aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey Oldham <oldham@codesourcery.com>2001-01-15 03:33:56 +0000
committerJeffrey D. Oldham <oldham@gcc.gnu.org>2001-01-15 03:33:56 +0000
commitea4f1fce751a54c91ac3a4bc72141709499bf36b (patch)
tree5b522cca0fe69fade7ce32a3bd076b8b4accee35 /gcc
parentbfeee001eb0d6f6a782f12c91bfd39f61229b88c (diff)
downloadgcc-ea4f1fce751a54c91ac3a4bc72141709499bf36b.zip
gcc-ea4f1fce751a54c91ac3a4bc72141709499bf36b.tar.gz
gcc-ea4f1fce751a54c91ac3a4bc72141709499bf36b.tar.bz2
defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the linker supports the init_priority C++ attribute.
gcc/ChangeLog: 2001-01-14 Jeffrey Oldham <oldham@codesourcery.com> * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the linker supports the init_priority C++ attribute. * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro. * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix linker does not support init_priority C++ attribute. gcc/cp/ChangeLog: 2001-01-14 Jeffrey Oldham <oldham@codesourcery.com> * tree.c: Add defaults.h (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. * Make-lang.in (cp/tree.o): Add defaults.h. From-SVN: r39023
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/mips/iris6.h6
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/Make-lang.in2
-rw-r--r--gcc/cp/tree.c15
-rw-r--r--gcc/defaults.h8
-rw-r--r--gcc/tm.texi7
7 files changed, 46 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d2a7a5..12d67fe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
+
+ * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the
+ linker supports the init_priority C++ attribute.
+ * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro.
+ * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix
+ linker does not support init_priority C++ attribute.
+
Sun Jan 14 22:31:30 2001 J"orn Rennecke <amylaar@redhat.com>
* Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs.
diff --git a/gcc/config/mips/iris6.h b/gcc/config/mips/iris6.h
index 3c88853..b7a6f8f 100644
--- a/gcc/config/mips/iris6.h
+++ b/gcc/config/mips/iris6.h
@@ -1,5 +1,5 @@
/* Definitions of target machine for GNU compiler. Iris version 6.
- Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -205,6 +205,10 @@ Boston, MA 02111-1307, USA. */
#define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS(FILE,NAME,0)
+/* Irix assembler does not support the init_priority C++ attribute. */
+#undef SUPPORTS_INIT_PRIORITY
+#define SUPPORTS_INIT_PRIORITY 0
+
#define POPSECTION_ASM_OP "\t.popsection"
#define DEBUG_INFO_SECTION ".debug_info,0x7000001e,0,0,1"
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index b5a9194..21ca094 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
+
+ * tree.c: Add defaults.h
+ (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
+ * Make-lang.in (cp/tree.o): Add defaults.h.
+
2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
* Make-lang.in (CXX_C_OBJS): Add c-format.o.
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index 766e695..b6bbd37 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -274,7 +274,7 @@ cp/method.o: cp/method.c $(CXX_TREE_H) toplev.h $(GGC_H) $(RTL_H) $(EXPR_H)
cp/cvt.o: cp/cvt.c $(CXX_TREE_H) cp/decl.h flags.h toplev.h convert.h
cp/search.o: cp/search.c $(CXX_TREE_H) stack.h flags.h toplev.h $(RTL_H)
cp/tree.o: cp/tree.c $(CXX_TREE_H) flags.h toplev.h $(GGC_H) $(RTL_H) \
- insn-config.h integrate.h
+ insn-config.h integrate.h defaults.h
cp/ptree.o: cp/ptree.c $(CXX_TREE_H) system.h
cp/rtti.o: cp/rtti.c $(CXX_TREE_H) flags.h toplev.h defaults.h
cp/except.o: cp/except.c $(CXX_TREE_H) flags.h $(RTL_H) except.h toplev.h \
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 4f55c70..88f07be 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -1,6 +1,6 @@
/* Language-dependent node constructors for parse phase of GNU compiler.
Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000 Free Software Foundation, Inc.
+ 1999, 2000, 2001 Free Software Foundation, Inc.
Hacked by Michael Tiemann (tiemann@cygnus.com)
This file is part of GNU CC.
@@ -31,6 +31,7 @@ Boston, MA 02111-1307, USA. */
#include "ggc.h"
#include "insn-config.h"
#include "integrate.h"
+#include "defaults.h"
static tree bot_manip PARAMS ((tree *, int *, void *));
static tree bot_replace PARAMS ((tree *, int *, void *));
@@ -2312,8 +2313,16 @@ cp_valid_lang_attribute (attr_name, attr_args, decl, type)
("requested init_priority is reserved for internal use");
}
- DECL_INIT_PRIORITY (decl) = pri;
- return 1;
+ if (SUPPORTS_INIT_PRIORITY)
+ {
+ DECL_INIT_PRIORITY (decl) = pri;
+ return 1;
+ }
+ else
+ {
+ error ("init_priority attribute is not supported on this platform");
+ return 0;
+ }
}
return 0;
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 2f2aee9..2aa5218 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -1,7 +1,7 @@
/* Definitions of various defaults for how to do assembler output
(most of which are designed to be appropriate for GAS or for
some BSD assembler).
- Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000
+ Copyright (C) 1992, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
Contributed by Ron Guilmette (rfg@monkeys.com)
@@ -167,6 +167,12 @@ do { ASM_OUTPUT_LABEL(FILE,LABEL_ALTERNATE_NAME (INSN)); } while (0)
# endif
#endif
+/* If the target supports init_priority C++ attribute, give
+ SUPPORTS_INIT_PRIORITY a nonzero value. */
+#ifndef SUPPORTS_INIT_PRIORITY
+#define SUPPORTS_INIT_PRIORITY 1
+#endif /* SUPPORTS_INIT_PRIORITY */
+
/* If we have a definition of INCOMING_RETURN_ADDR_RTX, assume that
the rest of the DWARF 2 frame unwind support is also provided. */
#if !defined (DWARF2_UNWIND_INFO) && defined (INCOMING_RETURN_ADDR_RTX)
diff --git a/gcc/tm.texi b/gcc/tm.texi
index 0cba909..16afc46 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -6387,6 +6387,13 @@ If defined, @code{main} will call @code{__main} despite the presence of
where the init section is not actually run automatically, but is still
useful for collecting the lists of constructors and destructors.
+@item SUPPORTS_INIT_PRIORITY
+@findex SUPPORTS_INIT_PRIORITY
+If nonzero, the C++ @code{init_priority} attribute is supported and the
+compiler should emit instructions to control the order of initialization
+of objects. If zero, the compiler will issue an error message upon
+encountering an @code{init_priority} attribute.
+
@item ASM_OUTPUT_CONSTRUCTOR (@var{stream}, @var{name})
@findex ASM_OUTPUT_CONSTRUCTOR
Define this macro as a C statement to output on the stream @var{stream}