diff options
author | Alexey Neyman <alex.neyman@auriga.ru> | 2005-03-08 13:19:40 +0000 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-03-08 05:19:40 -0800 |
commit | 6e9a32219ba643ca53c2b68822f0eddbf3280503 (patch) | |
tree | cdc25a73277e939285d67c67cd208d1cd34a0bc2 /gcc/calls.c | |
parent | 25d8d27de5150007e26f4cb3397b823af63c5344 (diff) | |
download | gcc-6e9a32219ba643ca53c2b68822f0eddbf3280503.zip gcc-6e9a32219ba643ca53c2b68822f0eddbf3280503.tar.gz gcc-6e9a32219ba643ca53c2b68822f0eddbf3280503.tar.bz2 |
re PR c/14411 (Request for setjmp/longjmp attributes)
PR c/14411
* calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
* c-common.c (handle_returns_twice): New function.
(c_common_attribute_table): Declare eturns_twice' attribute.
* doc/extend.texi: Document eturns_twice' attribute.
* tree.h (DECL_IS_RETURNS_TWICE): New macro.
(struct tree_decl): Add returns_twice_flag.
From-SVN: r96101
Diffstat (limited to 'gcc/calls.c')
-rw-r--r-- | gcc/calls.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c index f90e1a5..d6032fc 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -585,6 +585,10 @@ flags_from_decl_or_type (tree exp) if (DECL_IS_MALLOC (exp)) flags |= ECF_MALLOC; + /* The function exp may have the `returns_twice' attribute. */ + if (DECL_IS_RETURNS_TWICE (exp)) + flags |= ECF_RETURNS_TWICE; + /* The function exp may have the `pure' attribute. */ if (DECL_IS_PURE (exp)) flags |= ECF_PURE | ECF_LIBCALL_BLOCK; |