This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Mark va_start as nothrow


On Mon, Apr 13, 2009 at 8:20 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> va_start/va_copy/va_end is not marked as nothrow that makes every
> function using variadic arguments to be believed throwing externally
> that degrade nothrow analysis we make.
>
> I think it is safe to mark them nothorw. ?With -fnon-call-exceptions
> they can theoretically be given bad pointer, but other similar
> functions that can ICE are already marked NOTHROW (such as sprintf).
> Or if this is not true, I can probably add ATTR_NONTRHOW_FOR_NCE_LIST
>
> Bootstrapped/regtested x86_64-linux, seems sane?

Ok if there are no complaints within 24h.

Thanks,
Richard.

> Honza
>
> ? ? ? ?* builtins.def (va_copy, va_end, va_start): Mark as nothrow
> Index: builtins.def
> ===================================================================
> --- builtins.def ? ? ? ?(revision 146004)
> +++ builtins.def ? ? ? ?(working copy)
> @@ -700,9 +700,9 @@
> ?DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_TRAP, "trap", BT_FN_VOID, ATTR_NORETURN_NOTHROW_LIST)
> ?DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_UNWIND_INIT, "unwind_init", BT_FN_VOID, ATTR_NULL)
> ?DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_UPDATE_SETJMP_BUF, "update_setjmp_buf", BT_FN_VOID_PTR_INT, ATTR_NULL)
> -DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_COPY, "va_copy", BT_FN_VOID_VALIST_REF_VALIST_ARG, ATTR_NULL)
> -DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_END, "va_end", BT_FN_VOID_VALIST_REF, ATTR_NULL)
> -DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_START, "va_start", BT_FN_VOID_VALIST_REF_VAR, ATTR_NULL)
> +DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_COPY, "va_copy", BT_FN_VOID_VALIST_REF_VALIST_ARG, ATTR_NOTHROW_LIST)
> +DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_END, "va_end", BT_FN_VOID_VALIST_REF, ATTR_NOTHROW_LIST)
> +DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_START, "va_start", BT_FN_VOID_VALIST_REF_VAR, ATTR_NOTHROW_LIST)
> ?DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_ARG_PACK, "va_arg_pack", BT_FN_INT, ATTR_PURE_NOTHROW_LIST)
> ?DEF_GCC_BUILTIN ? ? ? ?(BUILT_IN_VA_ARG_PACK_LEN, "va_arg_pack_len", BT_FN_INT, ATTR_PURE_NOTHROW_LIST)
> ?DEF_EXT_LIB_BUILTIN ? ?(BUILT_IN__EXIT, "_exit", BT_FN_VOID_INT, ATTR_NORETURN_NOTHROW_LIST)
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]