This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: Rename the gcc_target global
- To: gcc-patches at gcc dot gnu dot org
- Subject: PATCH: Rename the gcc_target global
- From: Stan Shebs <shebs at apple dot com>
- Date: Fri, 06 Jul 2001 17:15:55 -0700
The original choice of "target" as the global for machine-specific
functions has the unfortunate property of being shadowed by the
many local variables also named "target". This just changes to use
Neil's suggested "targetm" everywhere. The change is obvious I
suppose, but out of paranoia I bootstrapped powerpc-apple-darwin1.3
and built some random crosses too. Since this touches every config,
I would like to get approval before committing too.
Stan
2001-07-06 Stan Shebs <shebs@apple.com>
* target.h (targetm): Rename global from "target", so as not to
conflict with local variables.
* c-decl.c: Ditto.
* c-typeck.c: Ditto.
* final.c: Ditto.
* tree.c: Ditto.
* cp/decl.c: Ditto.
* cp/decl2.c: Ditto.
* cp/typeck.c: Ditto.
* 1750a/1750a.c: Ditto.
* a29k/a29k.c: Ditto.
* arc/arc.c: Ditto.
* arm/arm.c: Ditto.
* avr/avr.c: Ditto.
* clipper/clipper.c: Ditto.
* convex/convex.c: Ditto.
* d30v/d30v.c: Ditto.
* dsp16xx/dsp16xx.c: Ditto.
* elxsi/elxsi.c: Ditto.
* fr30/fr30.c: Ditto.
* h8300/h8300.c: Ditto.
* i370/i370.c: Ditto.
* i386/i386.c: Ditto.
* i860/i860.c: Ditto.
* i960/i960.c: Ditto.
* ia64/ia64.c: Ditto.
* m32r/m32r.c: Ditto.
* m68hc11/m68hc11.c: Ditto.
* m68k/m68k.c: Ditto.
* m88k/m88k.c: Ditto.
* mips/mips.c: Ditto.
* ns32k/ns32k.c: Ditto.
* pa/pa.c: Ditto.
* pdp11/pdp11.c: Ditto.
* romp/romp.c: Ditto.
* rs6000/rs6000.c: Ditto.
* sh/sh.c: Ditto.
* sparc/sparc.c: Ditto.
* vax/vax.c: Ditto.
* we32k/we32k.c: Ditto.
* doc/tm.texi: Update the manual to match.
Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.233
diff -c -3 -p -r1.233 c-decl.c
*** c-decl.c 2001/06/26 18:08:24 1.233
--- c-decl.c 2001/07/06 23:58:09
*************** duplicate_decls (newdecl, olddecl, diffe
*** 1404,1410 ****
if (DECL_P (olddecl))
DECL_MACHINE_ATTRIBUTES (newdecl)
! = (*target.merge_decl_attributes) (olddecl, newdecl);
if (TREE_CODE (newtype) == ERROR_MARK
|| TREE_CODE (oldtype) == ERROR_MARK)
--- 1404,1410 ----
if (DECL_P (olddecl))
DECL_MACHINE_ATTRIBUTES (newdecl)
! = (*targetm.merge_decl_attributes) (olddecl, newdecl);
if (TREE_CODE (newtype) == ERROR_MARK
|| TREE_CODE (oldtype) == ERROR_MARK)
Index: c-typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
retrieving revision 1.127
diff -c -3 -p -r1.127 c-typeck.c
*** c-typeck.c 2001/06/29 17:21:12 1.127
--- c-typeck.c 2001/07/06 23:58:11
*************** common_type (t1, t2)
*** 206,212 ****
return t1;
/* Merge the attributes. */
! attributes = (*target.merge_type_attributes) (t1, t2);
/* Treat an enum type as the unsigned integer type of the same width. */
--- 206,212 ----
return t1;
/* Merge the attributes. */
! attributes = (*targetm.merge_type_attributes) (t1, t2);
/* Treat an enum type as the unsigned integer type of the same width. */
*************** comptypes (type1, type2)
*** 484,490 ****
return 1;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
! if (! (attrval = (*target.comp_type_attributes) (t1, t2)))
return 0;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
--- 484,490 ----
return 1;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
! if (! (attrval = (*targetm.comp_type_attributes) (t1, t2)))
return 0;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
Index: final.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/final.c,v
retrieving revision 1.178
diff -c -3 -p -r1.178 final.c
*** final.c 2001/07/06 18:39:56 1.178
--- final.c 2001/07/06 23:58:12
*************** final_start_function (first, file, optim
*** 1630,1636 ****
}
/* First output the function prologue: code to set up the stack frame. */
! (*target.asm_out.function_prologue) (file, get_frame_size ());
/* If the machine represents the prologue as RTL, the profiling code must
be emitted when NOTE_INSN_PROLOGUE_END is scanned. */
--- 1630,1636 ----
}
/* First output the function prologue: code to set up the stack frame. */
! (*targetm.asm_out.function_prologue) (file, get_frame_size ());
/* If the machine represents the prologue as RTL, the profiling code must
be emitted when NOTE_INSN_PROLOGUE_END is scanned. */
*************** final_end_function (first, file, optimiz
*** 1773,1779 ****
/* Finally, output the function epilogue:
code to restore the stack frame and return to the caller. */
! (*target.asm_out.function_epilogue) (file, get_frame_size ());
#ifdef SDB_DEBUGGING_INFO
if (write_symbols == SDB_DEBUG)
--- 1773,1779 ----
/* Finally, output the function epilogue:
code to restore the stack frame and return to the caller. */
! (*targetm.asm_out.function_epilogue) (file, get_frame_size ());
#ifdef SDB_DEBUGGING_INFO
if (write_symbols == SDB_DEBUG)
Index: target.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/target.h,v
retrieving revision 1.4
diff -c -3 -p -r1.4 target.h
*** target.h 2001/07/06 18:40:00 1.4
--- target.h 2001/07/06 23:58:12
*************** Foundation, 59 Temple Place - Suite 330,
*** 33,41 ****
includes target.h and target-def.h, and overrides any inappropriate
defaults by undefining the relevant macro and defining a suitable
replacement. That file should then contain the definition of
! "target" like so:
! struct gcc_target target = TARGET_INITIALIZER;
Doing things this way allows us to bring together everything that
defines a target to GCC. By supplying a default that is
--- 33,41 ----
includes target.h and target-def.h, and overrides any inappropriate
defaults by undefining the relevant macro and defining a suitable
replacement. That file should then contain the definition of
! "targetm" like so:
! struct gcc_target targetm = TARGET_INITIALIZER;
Doing things this way allows us to bring together everything that
defines a target to GCC. By supplying a default that is
*************** struct gcc_target
*** 83,86 ****
void (* set_default_type_attributes) PARAMS ((tree type));
};
! extern struct gcc_target target;
--- 83,86 ----
void (* set_default_type_attributes) PARAMS ((tree type));
};
! extern struct gcc_target targetm;
Index: tree.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.c,v
retrieving revision 1.200
diff -c -3 -p -r1.200 tree.c
*** tree.c 2001/07/01 16:50:11 1.200
--- tree.c 2001/07/06 23:58:13
*************** make_node (code)
*** 435,441 ****
/* Default to no attributes for type, but let target change that. */
TYPE_ATTRIBUTES (t) = NULL_TREE;
! (*target.set_default_type_attributes) (t);
/* We have not yet computed the alias set for this type. */
TYPE_ALIAS_SET (t) = -1;
--- 435,441 ----
/* Default to no attributes for type, but let target change that. */
TYPE_ATTRIBUTES (t) = NULL_TREE;
! (*targetm.set_default_type_attributes) (t);
/* We have not yet computed the alias set for this type. */
TYPE_ALIAS_SET (t) = -1;
*************** valid_machine_attribute (attr_name, attr
*** 2759,2766 ****
{
tree decl_attrs = DECL_MACHINE_ATTRIBUTES (decl);
! if ((*target.valid_decl_attribute) (decl, decl_attrs, attr_name,
! attr_args))
{
tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
decl_attrs);
--- 2759,2766 ----
{
tree decl_attrs = DECL_MACHINE_ATTRIBUTES (decl);
! if ((*targetm.valid_decl_attribute) (decl, decl_attrs, attr_name,
! attr_args))
{
tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
decl_attrs);
*************** valid_machine_attribute (attr_name, attr
*** 2783,2790 ****
}
type_attrs = TYPE_ATTRIBUTES (type);
! if ((*target.valid_type_attribute) (type, type_attrs, attr_name,
! attr_args))
{
tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
type_attrs);
--- 2783,2790 ----
}
type_attrs = TYPE_ATTRIBUTES (type);
! if ((*targetm.valid_type_attribute) (type, type_attrs, attr_name,
! attr_args))
{
tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
type_attrs);
*************** valid_machine_attribute (attr_name, attr
*** 2818,2825 ****
by putting the attribute on the function type. */
else if (POINTER_TYPE_P (type)
&& TREE_CODE (TREE_TYPE (type)) == FUNCTION_TYPE
! && (*target.valid_type_attribute) (TREE_TYPE (type), type_attrs,
! attr_name, attr_args))
{
tree inner_type = TREE_TYPE (type);
tree inner_attrs = TYPE_ATTRIBUTES (inner_type);
--- 2818,2825 ----
by putting the attribute on the function type. */
else if (POINTER_TYPE_P (type)
&& TREE_CODE (TREE_TYPE (type)) == FUNCTION_TYPE
! && (*targetm.valid_type_attribute) (TREE_TYPE (type), type_attrs,
! attr_name, attr_args))
{
tree inner_type = TREE_TYPE (type);
tree inner_attrs = TYPE_ATTRIBUTES (inner_type);
Index: config/1750a/1750a.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/1750a/1750a.c,v
retrieving revision 1.10
diff -c -3 -p -r1.10 1750a.c
*** 1750a.c 2001/07/06 18:40:00 1.10
--- 1750a.c 2001/07/06 23:58:13
*************** static void output_function_epilogue PAR
*** 56,62 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
--- 56,62 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
Index: config/a29k/a29k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/a29k/a29k.c,v
retrieving revision 1.17
diff -c -3 -p -r1.17 a29k.c
*** a29k.c 2001/07/06 18:40:01 1.17
--- a29k.c 2001/07/06 23:58:13
*************** int a29k_compare_fp_p;
*** 100,106 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Returns 1 if OP is a 8-bit constant. */
--- 100,106 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Returns 1 if OP is a 8-bit constant. */
Index: config/alpha/alpha.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.c,v
retrieving revision 1.167
diff -c -3 -p -r1.167 alpha.c
*** alpha.c 2001/07/04 17:43:14 1.167
--- alpha.c 2001/07/06 23:58:14
*************** static rtx alpha_emit_xfloating_compare
*** 148,154 ****
/* Initialize the GCC target structure. */
! struct gcc_target target = TARGET_INITIALIZER;
/* Parse target option strings. */
--- 148,154 ----
/* Initialize the GCC target structure. */
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Parse target option strings. */
Index: config/arc/arc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arc/arc.c,v
retrieving revision 1.18
diff -c -3 -p -r1.18 arc.c
*** arc.c 2001/07/06 18:40:01 1.18
--- arc.c 2001/07/06 23:58:15
*************** static void arc_output_function_epilogue
*** 99,105 ****
#undef TARGET_VALID_DECL_ATTRIBUTE
#define TARGET_VALID_DECL_ATTRIBUTE arc_valid_decl_attribute
! struct gcc_target target = TARGET_INITIALIZER;
/* Called by OVERRIDE_OPTIONS to initialize various things. */
--- 99,105 ----
#undef TARGET_VALID_DECL_ATTRIBUTE
#define TARGET_VALID_DECL_ATTRIBUTE arc_valid_decl_attribute
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Called by OVERRIDE_OPTIONS to initialize various things. */
Index: config/arm/arm.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
retrieving revision 1.153
diff -c -3 -p -r1.153 arm.c
*** arm.c 2001/07/06 18:40:01 1.153
--- arm.c 2001/07/06 23:58:17
*************** static void arm_set_default_type_attrib
*** 148,154 ****
#undef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
#define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES arm_set_default_type_attributes
! struct gcc_target target = TARGET_INITIALIZER;
/* Obstack for minipool constant handling. */
static struct obstack minipool_obstack;
--- 148,154 ----
#undef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
#define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES arm_set_default_type_attributes
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Obstack for minipool constant handling. */
static struct obstack minipool_obstack;
Index: config/avr/avr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.c,v
retrieving revision 1.41
diff -c -3 -p -r1.41 avr.c
*** avr.c 2001/07/06 18:40:03 1.41
--- avr.c 2001/07/06 23:58:18
*************** int avr_case_values_threshold = 30000;
*** 183,189 ****
#undef TARGET_VALID_TYPE_ATTRIBUTE
#define TARGET_VALID_TYPE_ATTRIBUTE avr_valid_type_attribute
! struct gcc_target target = TARGET_INITIALIZER;
void
avr_override_options ()
--- 183,189 ----
#undef TARGET_VALID_TYPE_ATTRIBUTE
#define TARGET_VALID_TYPE_ATTRIBUTE avr_valid_type_attribute
! struct gcc_target targetm = TARGET_INITIALIZER;
void
avr_override_options ()
Index: config/c4x/c4x.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/c4x/c4x.c,v
retrieving revision 1.84
diff -c -3 -p -r1.84 c4x.c
*** c4x.c 2001/07/03 19:44:07 1.84
--- c4x.c 2001/07/06 23:58:19
*************** static int c4x_valid_type_attribute_p PA
*** 195,201 ****
#undef TARGET_VALID_TYPE_ATTRIBUTE
#define TARGET_VALID_TYPE_ATTRIBUTE c4x_valid_type_attribute_p
! struct gcc_target target = TARGET_INITIALIZER;
/* Called to register all of our global variables with the garbage
collector. */
--- 195,201 ----
#undef TARGET_VALID_TYPE_ATTRIBUTE
#define TARGET_VALID_TYPE_ATTRIBUTE c4x_valid_type_attribute_p
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Called to register all of our global variables with the garbage
collector. */
Index: config/clipper/clipper.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/clipper/clipper.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 clipper.c
*** clipper.c 2001/07/06 18:40:03 1.14
--- clipper.c 2001/07/06 23:58:19
*************** static int frame_size;
*** 55,61 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE clipper_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Compute size of a clipper stack frame where 'lsize' is the required
space for local variables. */
--- 55,61 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE clipper_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Compute size of a clipper stack frame where 'lsize' is the required
space for local variables. */
Index: config/convex/convex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/convex/convex.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 convex.c
*** convex.c 2001/07/06 18:40:04 1.12
--- convex.c 2001/07/06 23:58:19
*************** static void convex_output_function_epilo
*** 73,79 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE convex_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
--- 73,79 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE convex_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
Index: config/d30v/d30v.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/d30v/d30v.c,v
retrieving revision 1.10
diff -c -3 -p -r1.10 d30v.c
*** d30v.c 2001/07/06 18:40:04 1.10
--- d30v.c 2001/07/06 23:58:20
*************** enum reg_class reg_class_from_letter[256
*** 87,93 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE d30v_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
--- 87,93 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE d30v_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
Index: config/dsp16xx/dsp16xx.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/dsp16xx/dsp16xx.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 dsp16xx.c
*** dsp16xx.c 2001/07/06 18:40:08 1.15
--- dsp16xx.c 2001/07/06 23:58:20
*************** static void dsp16xx_output_function_epil
*** 155,161 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE dsp16xx_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
int
hard_regno_mode_ok (regno, mode)
--- 155,161 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE dsp16xx_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
int
hard_regno_mode_ok (regno, mode)
Index: config/elxsi/elxsi.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/elxsi/elxsi.c,v
retrieving revision 1.9
diff -c -3 -p -r1.9 elxsi.c
*** elxsi.c 2001/07/06 18:40:09 1.9
--- elxsi.c 2001/07/06 23:58:20
*************** static void elxsi_output_function_epilog
*** 47,53 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE elxsi_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
--- 47,53 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE elxsi_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
Index: config/fr30/fr30.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/fr30/fr30.c,v
retrieving revision 1.13
diff -c -3 -p -r1.13 fr30.c
*** fr30.c 2001/07/06 18:40:09 1.13
--- fr30.c 2001/07/06 23:58:20
*************** static struct fr30_frame_info zero_fram
*** 139,145 ****
/* Initialize the GCC target structure. */
! struct gcc_target target = TARGET_INITIALIZER;
/* Returns the number of bytes offset between FROM_REG and TO_REG
for the current function. As a side effect it fills in the
--- 139,145 ----
/* Initialize the GCC target structure. */
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Returns the number of bytes offset between FROM_REG and TO_REG
for the current function. As a side effect it fills in the
Index: config/h8300/h8300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.c,v
retrieving revision 1.60
diff -c -3 -p -r1.60 h8300.c
*** h8300.c 2001/07/06 18:40:09 1.60
--- h8300.c 2001/07/06 23:58:21
*************** const char *h8_push_op, *h8_pop_op, *h8_
*** 105,111 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE h8300_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Initialize various cpu specific globals at start up. */
--- 105,111 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE h8300_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Initialize various cpu specific globals at start up. */
Index: config/i370/i370.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i370/i370.c,v
retrieving revision 1.18
diff -c -3 -p -r1.18 i370.c
*** i370.c 2001/07/06 18:40:10 1.18
--- i370.c 2001/07/06 23:58:21
*************** static const unsigned char ebcasc[256] =
*** 294,300 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE i370_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Map characters from one character set to another.
C is the character to be translated. */
--- 294,300 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE i370_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Map characters from one character set to another.
C is the character to be translated. */
Index: config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.278
diff -c -3 -p -r1.278 i386.c
*** i386.c 2001/07/06 18:40:10 1.278
--- i386.c 2001/07/06 23:58:23
*************** static int ix86_comp_type_attributes PAR
*** 631,637 ****
# define TARGET_ASM_FUNCTION_PROLOGUE ix86_osf_output_function_prologue
#endif
! struct gcc_target target = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
--- 631,637 ----
# define TARGET_ASM_FUNCTION_PROLOGUE ix86_osf_output_function_prologue
#endif
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
Index: config/i860/i860.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i860/i860.c,v
retrieving revision 1.22
diff -c -3 -p -r1.22 i860.c
*** i860.c 2001/07/06 18:40:11 1.22
--- i860.c 2001/07/06 23:58:24
*************** rtx i860_compare_op0, i860_compare_op1;
*** 70,76 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE i860_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Return non-zero if this pattern, can be evaluated safely, even if it
was not asked for. */
--- 70,76 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE i860_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Return non-zero if this pattern, can be evaluated safely, even if it
was not asked for. */
Index: config/i960/i960.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i960/i960.c,v
retrieving revision 1.26
diff -c -3 -p -r1.26 i960.c
*** i960.c 2001/07/06 18:40:11 1.26
--- i960.c 2001/07/06 23:58:25
*************** static int ret_label = 0;
*** 98,104 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE i960_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Initialize variables before compiling any files. */
--- 98,104 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE i960_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Initialize variables before compiling any files. */
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.99
diff -c -3 -p -r1.99 ia64.c
*** ia64.c 2001/07/06 18:40:12 1.99
--- ia64.c 2001/07/06 23:58:26
*************** static void ia64_function_epilogue PARAM
*** 149,155 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE ia64_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Return 1 if OP is a valid operand for the MEM of a CALL insn. */
--- 149,155 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE ia64_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Return 1 if OP is a valid operand for the MEM of a CALL insn. */
Index: config/m32r/m32r.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m32r/m32r.c,v
retrieving revision 1.30
diff -c -3 -p -r1.30 m32r.c
*** m32r.c 2001/07/06 18:40:12 1.30
--- m32r.c 2001/07/06 23:58:27
*************** static void m32r_output_function_epilog
*** 76,82 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m32r_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Called by OVERRIDE_OPTIONS to initialize various things. */
--- 76,82 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m32r_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Called by OVERRIDE_OPTIONS to initialize various things. */
Index: config/m68hc11/m68hc11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 m68hc11.c
*** m68hc11.c 2001/07/06 18:40:13 1.15
--- m68hc11.c 2001/07/06 23:58:28
*************** static int nb_soft_regs;
*** 213,219 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m68hc11_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
int
m68hc11_override_options ()
--- 213,219 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m68hc11_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
int
m68hc11_override_options ()
Index: config/m68k/m68k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68k/m68k.c,v
retrieving revision 1.46
diff -c -3 -p -r1.46 m68k.c
*** m68k.c 2001/07/06 18:40:13 1.46
--- m68k.c 2001/07/06 23:58:29
*************** int m68k_last_compare_had_fp_operands;
*** 86,92 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m68k_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
--- 86,92 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m68k_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
Index: config/m88k/m88k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m88k/m88k.c,v
retrieving revision 1.34
diff -c -3 -p -r1.34 m88k.c
*** m88k.c 2001/07/06 18:40:13 1.34
--- m88k.c 2001/07/06 23:58:29
*************** static void m88k_output_function_epilogu
*** 72,78 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m88k_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Determine what instructions are needed to manufacture the integer VALUE
in the given MODE. */
--- 72,78 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE m88k_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Determine what instructions are needed to manufacture the integer VALUE
in the given MODE. */
Index: config/mcore/mcore.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 mcore.c
*** mcore.c 2001/07/03 19:44:13 1.14
--- mcore.c 2001/07/06 23:58:30
*************** static int mcore_valid_decl_attri
*** 142,148 ****
#undef TARGET_VALID_DECL_ATTRIBUTE
#define TARGET_VALID_DECL_ATTRIBUTE mcore_valid_decl_attribute
! struct gcc_target target = TARGET_INITIALIZER;
/* Adjust the stack and return the number of bytes taken to do it. */
static void
--- 142,148 ----
#undef TARGET_VALID_DECL_ATTRIBUTE
#define TARGET_VALID_DECL_ATTRIBUTE mcore_valid_decl_attribute
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Adjust the stack and return the number of bytes taken to do it. */
static void
Index: config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.c,v
retrieving revision 1.123
diff -c -3 -p -r1.123 mips.c
*** mips.c 2001/07/06 18:40:14 1.123
--- mips.c 2001/07/06 23:58:32
*************** enum reg_class mips_char_to_class[256] =
*** 446,452 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Return truth value of whether OP can be used as an operands
where a register or 16 bit unsigned integer is needed. */
--- 446,452 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Return truth value of whether OP can be used as an operands
where a register or 16 bit unsigned integer is needed. */
Index: config/mn10200/mn10200.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mn10200/mn10200.c,v
retrieving revision 1.19
diff -c -3 -p -r1.19 mn10200.c
*** mn10200.c 2001/07/03 19:44:15 1.19
--- mn10200.c 2001/07/06 23:58:32
*************** static int out_of_line_epilogue;
*** 68,74 ****
/* Initialize the GCC target structure. */
! struct gcc_target target = TARGET_INITIALIZER;
/* Indicate this file was compiled by gcc and what optimization
level was used. */
--- 68,74 ----
/* Initialize the GCC target structure. */
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Indicate this file was compiled by gcc and what optimization
level was used. */
Index: config/mn10300/mn10300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mn10300/mn10300.c,v
retrieving revision 1.37
diff -c -3 -p -r1.37 mn10300.c
*** mn10300.c 2001/07/03 19:44:16 1.37
--- mn10300.c 2001/07/06 23:58:32
*************** Boston, MA 02111-1307, USA. */
*** 53,59 ****
/* Initialize the GCC target structure. */
! struct gcc_target target = TARGET_INITIALIZER;
void
asm_file_start (file)
--- 53,59 ----
/* Initialize the GCC target structure. */
! struct gcc_target targetm = TARGET_INITIALIZER;
void
asm_file_start (file)
Index: config/ns32k/ns32k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ns32k/ns32k.c,v
retrieving revision 1.17
diff -c -3 -p -r1.17 ns32k.c
*** ns32k.c 2001/07/06 18:40:14 1.17
--- ns32k.c 2001/07/06 23:58:33
*************** static void ns32k_output_function_epilog
*** 77,83 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE ns32k_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
--- 77,83 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE ns32k_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
Index: config/pa/pa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.116
diff -c -3 -p -r1.116 pa.c
*** pa.c 2001/07/06 18:40:15 1.116
--- pa.c 2001/07/06 23:58:34
*************** int n_deferred_plabels = 0;
*** 116,122 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE pa_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
void
override_options ()
--- 116,122 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE pa_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
void
override_options ()
Index: config/pdp11/pdp11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pdp11/pdp11.c,v
retrieving revision 1.19
diff -c -3 -p -r1.19 pdp11.c
*** pdp11.c 2001/07/06 18:40:15 1.19
--- pdp11.c 2001/07/06 23:58:34
*************** static void pdp11_output_function_epilog
*** 61,67 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE pdp11_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Nonzero if OP is a valid second operand for an arithmetic insn. */
--- 61,67 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE pdp11_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Nonzero if OP is a valid second operand for an arithmetic insn. */
Index: config/pj/pj.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pj/pj.c,v
retrieving revision 1.5
diff -c -3 -p -r1.5 pj.c
*** pj.c 2001/06/26 18:09:13 1.5
--- pj.c 2001/07/06 23:58:34
*************** int pj_stuff_on_line;
*** 127,133 ****
/* Initialize the GCC target structure. */
! struct gcc_target target = TARGET_INITIALIZER;
/* printf to the asm_out_file, with special format control characters
for decoding operands.
--- 127,133 ----
/* Initialize the GCC target structure. */
! struct gcc_target targetm = TARGET_INITIALIZER;
/* printf to the asm_out_file, with special format control characters
for decoding operands.
Index: config/romp/romp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/romp/romp.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 romp.c
*** romp.c 2001/07/06 18:40:15 1.15
--- romp.c 2001/07/06 23:58:35
*************** static void romp_output_function_epilogu
*** 59,65 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE romp_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Return 1 if the insn using CC0 set by INSN does not contain
any unsigned tests applied to the condition codes.
--- 59,65 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE romp_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Return 1 if the insn using CC0 set by INSN does not contain
any unsigned tests applied to the condition codes.
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.190
diff -c -3 -p -r1.190 rs6000.c
*** rs6000.c 2001/07/06 18:40:15 1.190
--- rs6000.c 2001/07/06 23:58:37
*************** static char alt_reg_names[][8] =
*** 175,181 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE rs6000_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Override command line options. Mostly we process the processor
type and sometimes adjust other TARGET_ options. */
--- 175,181 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE rs6000_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Override command line options. Mostly we process the processor
type and sometimes adjust other TARGET_ options. */
Index: config/sh/sh.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
retrieving revision 1.105
diff -c -3 -p -r1.105 sh.c
*** sh.c 2001/07/06 18:40:16 1.105
--- sh.c 2001/07/06 23:58:38
*************** static void sh_output_function_epilogue
*** 163,169 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE sh_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Print the operand address in x to the stream. */
--- 163,169 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE sh_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Print the operand address in x to the stream. */
Index: config/sparc/sparc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
retrieving revision 1.144
diff -c -3 -p -r1.144 sparc.c
*** sparc.c 2001/07/06 18:40:16 1.144
--- sparc.c 2001/07/06 23:58:40
*************** enum processor_type sparc_cpu;
*** 192,198 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE sparc_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Validate and override various options, and do some machine dependent
initialization. */
--- 192,198 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE sparc_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Validate and override various options, and do some machine dependent
initialization. */
Index: config/v850/v850.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/v850/v850.c,v
retrieving revision 1.43
diff -c -3 -p -r1.43 v850.c
*** v850.c 2001/07/03 19:44:19 1.43
--- v850.c 2001/07/06 23:58:40
*************** static int v850_interrupt_p = FALSE;
*** 86,92 ****
#undef TARGET_VALID_DECL_ATTRIBUTE
#define TARGET_VALID_DECL_ATTRIBUTE v850_valid_decl_attribute
! struct gcc_target target = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
--- 86,92 ----
#undef TARGET_VALID_DECL_ATTRIBUTE
#define TARGET_VALID_DECL_ATTRIBUTE v850_valid_decl_attribute
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Sometimes certain combinations of command options do not make
sense on a particular target machine. You can define a macro
Index: config/vax/vax.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 vax.c
*** vax.c 2001/07/06 18:40:17 1.12
--- vax.c 2001/07/06 23:58:40
*************** static void vax_output_function_prologue
*** 42,48 ****
#undef TARGET_ASM_FUNCTION_PROLOGUE
#define TARGET_ASM_FUNCTION_PROLOGUE vax_output_function_prologue
! struct gcc_target target = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
--- 42,48 ----
#undef TARGET_ASM_FUNCTION_PROLOGUE
#define TARGET_ASM_FUNCTION_PROLOGUE vax_output_function_prologue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
Index: config/we32k/we32k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/we32k/we32k.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 we32k.c
*** we32k.c 2001/07/06 18:40:17 1.12
--- we32k.c 2001/07/06 23:58:40
*************** static void we32k_output_function_epilog
*** 44,50 ****
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE we32k_output_function_epilogue
! struct gcc_target target = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
--- 44,50 ----
#undef TARGET_ASM_FUNCTION_EPILOGUE
#define TARGET_ASM_FUNCTION_EPILOGUE we32k_output_function_epilogue
! struct gcc_target targetm = TARGET_INITIALIZER;
/* Generate the assembly code for function entry. FILE is a stdio
stream to output the code to. SIZE is an int: how many units of
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.795
diff -c -3 -p -r1.795 decl.c
*** decl.c 2001/06/26 18:09:24 1.795
--- decl.c 2001/07/06 23:58:43
*************** duplicate_decls (newdecl, olddecl)
*** 3484,3490 ****
/* Copy all the DECL_... slots specified in the new decl
except for any that we copy here from the old type. */
DECL_MACHINE_ATTRIBUTES (newdecl)
! = (*target.merge_decl_attributes) (olddecl, newdecl);
if (TREE_CODE (newdecl) == TEMPLATE_DECL)
{
--- 3484,3490 ----
/* Copy all the DECL_... slots specified in the new decl
except for any that we copy here from the old type. */
DECL_MACHINE_ATTRIBUTES (newdecl)
! = (*targetm.merge_decl_attributes) (olddecl, newdecl);
if (TREE_CODE (newdecl) == TEMPLATE_DECL)
{
Index: cp/decl2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl2.c,v
retrieving revision 1.472
diff -c -3 -p -r1.472 decl2.c
*** decl2.c 2001/06/27 06:55:29 1.472
--- decl2.c 2001/07/06 23:58:44
*************** import_export_class (ctype)
*** 2456,2471 ****
if (CLASSTYPE_INTERFACE_ONLY (ctype))
return;
! if ((*target.valid_type_attribute) (ctype,
! TYPE_ATTRIBUTES (ctype),
! get_identifier ("dllimport"),
! NULL_TREE)
&& lookup_attribute ("dllimport", TYPE_ATTRIBUTES (ctype)))
import_export = -1;
! else if ((*target.valid_type_attribute) (ctype,
! TYPE_ATTRIBUTES (ctype),
! get_identifier ("dllexport"),
! NULL_TREE)
&& lookup_attribute ("dllexport", TYPE_ATTRIBUTES (ctype)))
import_export = 1;
--- 2456,2471 ----
if (CLASSTYPE_INTERFACE_ONLY (ctype))
return;
! if ((*targetm.valid_type_attribute) (ctype,
! TYPE_ATTRIBUTES (ctype),
! get_identifier ("dllimport"),
! NULL_TREE)
&& lookup_attribute ("dllimport", TYPE_ATTRIBUTES (ctype)))
import_export = -1;
! else if ((*targetm.valid_type_attribute) (ctype,
! TYPE_ATTRIBUTES (ctype),
! get_identifier ("dllexport"),
! NULL_TREE)
&& lookup_attribute ("dllexport", TYPE_ATTRIBUTES (ctype)))
import_export = 1;
Index: cp/typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/typeck.c,v
retrieving revision 1.355
diff -c -3 -p -r1.355 typeck.c
*** typeck.c 2001/07/05 15:39:36 1.355
--- typeck.c 2001/07/06 23:58:46
*************** qualify_type_recursive (t1, t2)
*** 212,218 ****
tree b1;
int type_quals;
tree tgt;
! tree attributes = (*target.merge_type_attributes) (t1, t2);
if (TREE_CODE (tt1) == OFFSET_TYPE)
{
--- 212,218 ----
tree b1;
int type_quals;
tree tgt;
! tree attributes = (*targetm.merge_type_attributes) (t1, t2);
if (TREE_CODE (tt1) == OFFSET_TYPE)
{
*************** type_after_usual_arithmetic_conversions
*** 343,349 ****
/* In what follows, we slightly generalize the rules given in [expr]
so as to deal with `long long'. First, merge the attributes. */
! attributes = (*target.merge_type_attributes) (t1, t2);
/* If only one is real, use it as the result. */
if (code1 == REAL_TYPE && code2 != REAL_TYPE)
--- 343,349 ----
/* In what follows, we slightly generalize the rules given in [expr]
so as to deal with `long long'. First, merge the attributes. */
! attributes = (*targetm.merge_type_attributes) (t1, t2);
/* If only one is real, use it as the result. */
if (code1 == REAL_TYPE && code2 != REAL_TYPE)
*************** common_type (t1, t2)
*** 549,555 ****
return type_after_usual_arithmetic_conversions (t1, t2);
/* Merge the attributes. */
! attributes = (*target.merge_type_attributes) (t1, t2);
/* Treat an enum type as the unsigned integer type of the same width. */
--- 549,555 ----
return type_after_usual_arithmetic_conversions (t1, t2);
/* Merge the attributes. */
! attributes = (*targetm.merge_type_attributes) (t1, t2);
/* Treat an enum type as the unsigned integer type of the same width. */
*************** comptypes (t1, t2, strict)
*** 999,1005 ****
if (strict & COMPARE_NO_ATTRIBUTES)
attrval = 1;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
! else if (! (attrval = (*target.comp_type_attributes) (t1, t2)))
return 0;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
--- 999,1005 ----
if (strict & COMPARE_NO_ATTRIBUTES)
attrval = 1;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
! else if (! (attrval = (*targetm.comp_type_attributes) (t1, t2)))
return 0;
/* 1 if no need for warning yet, 2 if warning cause has been seen. */
Index: doc/tm.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v
retrieving revision 1.24
diff -c -3 -p -r1.24 tm.texi
*** tm.texi 2001/07/06 18:40:17 1.24
--- tm.texi 2001/07/06 23:58:50
*************** through the macros defined in the @file{
*** 55,62 ****
@cindex target hooks
@cindex target functions
! @deftypevar {struct gcc_target} target
! The target @file{.c} file must define the global @code{target} variable
which contains pointers to functions and data relating to the target
machine. The variable is declared in @file{target.h};
@file{target-def.h} defines the macro @code{TARGET_INITIALIZER} which is
--- 55,62 ----
@cindex target hooks
@cindex target functions
! @deftypevar {struct gcc_target} targetm
! The target @file{.c} file must define the global @code{targetm} variable
which contains pointers to functions and data relating to the target
machine. The variable is declared in @file{target.h};
@file{target-def.h} defines the macro @code{TARGET_INITIALIZER} which is
*************** macros for which the default definition
*** 72,78 ****
#undef TARGET_VALID_TYPE_ATTRIBUTE
#define TARGET_VALID_TYPE_ATTRIBUTE @var{machine}_valid_type_attribute_p
! struct gcc_target target = TARGET_INITIALIZER;
@end smallexample
@end deftypevar
--- 72,78 ----
#undef TARGET_VALID_TYPE_ATTRIBUTE
#define TARGET_VALID_TYPE_ATTRIBUTE @var{machine}_valid_type_attribute_p
! struct gcc_target targetm = TARGET_INITIALIZER;
@end smallexample
@end deftypevar