diff options
author | Neil Booth <neil@cat.daikokuya.demon.co.uk> | 2001-06-27 06:55:29 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2001-06-27 06:55:29 +0000 |
commit | 501990bbfca586dd26a941f65fce7b7a5a9440ae (patch) | |
tree | 9362672ad53c9697b55642ba54ba293d0e394ede /gcc/doc/tm.texi | |
parent | 84690a975d2dc7a0172c3686eb43e6ea2047b969 (diff) | |
download | gcc-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.texi | 48 |
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 |