diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-09-23 11:36:01 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2007-09-23 11:36:01 +0200 |
commit | d752cfdb114944cf3c800fcc2e4d030ab392c52c (patch) | |
tree | 1b72fa7fe409e2cd66cf065ec2671ab20dce7b57 /gcc/doc | |
parent | 32eed0456c8c9c52b6b33a375788b09f476542cd (diff) | |
download | gcc-d752cfdb114944cf3c800fcc2e4d030ab392c52c.zip gcc-d752cfdb114944cf3c800fcc2e4d030ab392c52c.tar.gz gcc-d752cfdb114944cf3c800fcc2e4d030ab392c52c.tar.bz2 |
tree.h (block_nonartificial_location): New prototype.
* tree.h (block_nonartificial_location): New prototype.
* tree.c (block_nonartificial_location): New function.
* dwarf2out.c (gen_subprogram_die): Add DW_AT_artificial
if artificial attribute is present on abstract inline decl.
* c-common.c (handle_artificial_attribute): New function.
(c_common_attribute_table): Add artificial attribute.
* final.c (override_filename, override_linenum): New variables.
(final_scan_insn): For DBX_DEBUG or SDB_DEBUG, set override_filename
and override_linenum if inside of a block inlined from
__attribute__((__artificial__)) function.
(notice_source_line): Honor override_filename and override_linenum.
* doc/extend.texi: Document __attribute__((__artificial__)).
* config/i386/emmintrin.h: Add __artificial__ attribute to
all __always_inline__ functions.
* config/i386/mmintrin.h: Likewise.
* config/i386/tmmintrin.h: Likewise.
* config/i386/mm3dnow.h: Likewise.
* config/i386/pmmintrin.h: Likewise.
* config/i386/ammintrin.h: Likewise.
* config/i386/xmmintrin.h: Likewise.
* config/i386/smmintrin.h: Likewise.
* config/i386/bmmintrin.h: Likewise.
* config/i386/mmintrin-common.h: Likewise.
From-SVN: r128686
Diffstat (limited to 'gcc/doc')
-rw-r--r-- | gcc/doc/extend.texi | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 9be3c56..de3a121 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -1802,8 +1802,8 @@ attributes are currently defined for functions on all targets: @code{no_instrument_function}, @code{section}, @code{constructor}, @code{destructor}, @code{used}, @code{unused}, @code{deprecated}, @code{weak}, @code{malloc}, @code{alias}, @code{warn_unused_result}, -@code{nonnull}, @code{gnu_inline} and @code{externally_visible}, -@code{hot}, @code{cold}. +@code{nonnull}, @code{gnu_inline}, @code{externally_visible}, +@code{hot}, @code{cold} and @code{artificial}. Several other attributes are defined for functions on particular target systems. Other attributes, including @code{section} are supported for variables declarations (@pxref{Variable Attributes}) and @@ -1925,6 +1925,14 @@ In C++, this attribute does not depend on @code{extern} in any way, but it still requires the @code{inline} keyword to enable its special behavior. +@cindex @code{artificial} function attribute +@item artificial +This attribute is useful for small inline wrappers which if possible +should appear during debugging as a unit, depending on the debug +info format it will either mean marking the function as artificial +or using the caller location for all instructions within the inlined +body. + @cindex @code{flatten} function attribute @item flatten Generally, inlining into a function is limited. For a function marked with |