aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc/tm.texi
diff options
context:
space:
mode:
authorNeil Booth <neil@cat.daikokuya.demon.co.uk>2001-06-27 06:55:29 +0000
committerNeil Booth <neil@gcc.gnu.org>2001-06-27 06:55:29 +0000
commit501990bbfca586dd26a941f65fce7b7a5a9440ae (patch)
tree9362672ad53c9697b55642ba54ba293d0e394ede /gcc/doc/tm.texi
parent84690a975d2dc7a0172c3686eb43e6ea2047b969 (diff)
downloadgcc-501990bbfca586dd26a941f65fce7b7a5a9440ae.zip
gcc-501990bbfca586dd26a941f65fce7b7a5a9440ae.tar.gz
gcc-501990bbfca586dd26a941f65fce7b7a5a9440ae.tar.bz2
system.h (TARGET_ESC): Move to ...
* system.h (TARGET_ESC): Move to ... * defaults.h (TARGET_ESC): ... here. * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Default to a no-op handler. * tree.c (default_valid_attribute_p): New. (valid_machine_attribute): Handlers can not be NULL. * tree.h (default_valid_attribute_p): New. * doc/tm.texi: Document TARGET_ESC. * cp/decl2.c (import_export_class): Update. From-SVN: r43605
Diffstat (limited to 'gcc/doc/tm.texi')
-rw-r--r--gcc/doc/tm.texi48
1 files changed, 48 insertions, 0 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 24ca6b9..e60a4eb 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -12,6 +12,19 @@
In addition to the file @file{@var{machine}.md}, a machine description
includes a C header file conventionally given the name
+<<<<<<< tm.texi
+@file{@var{machine}.h} and a C source file named @file{@var{machine}.c}.
+The header file defines numerous macros that convey the information
+about the target machine that does not fit into the scheme of the
+@file{.md} file. The file @file{tm.h} should be a link to
+@file{@var{machine}.h}. The header file @file{config.h} includes
+@file{tm.h} and most compiler source files include @file{config.h}. The
+source file defines a variable @code{target}, which is a structure
+containing pointers to functions and data relating to the target
+machine. @file{@var{machine}.c} should also their definitions, if they
+are not defined elsewhere in GCC, and other functions called through the
+macros defined in the @file{.h} file.
+=======
@file{@var{machine}.h} and a C source file named @file{@var{machine}.c}.
The header file defines numerous macros that convey the information
about the target machine that does not fit into the scheme of the
@@ -23,6 +36,7 @@ containing pointers to functions and data relating to the target
machine. @file{@var{machine}.c} should also contain their definitions,
if they are not defined elsewhere in GCC, and other functions called
through the macros defined in the @file{.h} file.
+>>>>>>> 1.11
@menu
* Target Structure:: The @code{target} variable.
@@ -1581,6 +1595,12 @@ explicitly define all of the macros below.
A C constant expression for the integer value for escape sequence
@samp{\a}.
+@findex TARGET_ESC
+@item TARGET_ESC
+A C constant expression for the integer value of the target escape
+character. As an extension, GCC evaluates the escape sequences
+@samp{\e} and @samp{\E} to this.
+
@findex TARGET_TAB
@findex TARGET_BS
@findex TARGET_NEWLINE
@@ -8300,6 +8320,33 @@ If defined, a C statement that assigns default attributes to
newly defined @var{type}.
@end table
+<<<<<<< tm.texi
+@deftypefn {Target Hook} tree TARGET_MERGE_TYPE_ATTRIBUTES (tree @var{type1}, tree @var{type2})
+Define this target hook if the merging of type attributes needs special
+handling. If defined, the result is a list of the combined
+@code{TYPE_ATTRIBUTES} of @var{type1} and @var{type2}. It is assumed
+that @code{comptypes} has already been called and returned 1. This
+function may call @code{merge_attributes} to handle machine-independent
+merging.
+@end deftypefn
+
+@deftypefn {Target Hook} tree TARGET_MERGE_DECL_ATTRIBUTES (tree @var{olddecl}, tree @var{newdecl})
+Define this target hook if the merging of decl attributes needs special
+handling. If defined, the result is a list of the combined
+@code{DECL_MACHINE_ATTRIBUTES} of @var{olddecl} and @var{newdecl}.
+@var{newdecl} is a duplicate declaration of @var{olddecl}. Examples of
+when this is needed are when one attribute overrides another, or when an
+attribute is nullified by a subsequent definition. This function may
+call @code{merge_attributes} to handle machine-independent merging.
+
+If the only target-specific handling you require is @samp{dllimport} for
+Windows targets, you should define the macro
+@code{TARGET_DLLIMPORT_DECL_ATTRIBUTES}. This links in a function
+called @code{merge_dllimport_decl_attributes} which you can then define
+as the expansion of @code{TARGET_MERGE_DECL_ATTRIBUTES}. This is done
+in @file{i386/cygwin.h} and @file{i386/i386.c}, for example.
+@end deftypefn
+=======
@deftypefn {Target Hook} tree TARGET_MERGE_TYPE_ATTRIBUTES (tree @var{type1}, tree @var{type2})
Define this target hook if the merging of type attributes needs special
handling. If defined, the result is a list of the combined
@@ -8326,6 +8373,7 @@ called @code{merge_dllimport_decl_attributes} which can then be defined
as the expansion of @code{TARGET_MERGE_DECL_ATTRIBUTES}. This is done
in @file{i386/cygwin.h} and @file{i386/i386.c}, for example.
@end deftypefn
+>>>>>>> 1.11
@table @code
@findex INSERT_ATTRIBUTES