On Thu, Nov 7, 2013 at 5:45 PM, Jakub Jelinek <ja...@redhat.com> wrote:
> On Tue, Nov 05, 2013 at 11:21:56PM +0000, Joseph S. Myers wrote:
>> 2013-11-05  Andrew MacLeod  <amacl...@redhat.com>
>>           Joseph Myers  <jos...@codesourcery.com>
>>
>>       * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
>>       (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
>>       TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
>>       (struct tree_base): Add atomic_flag field.
>>       * tree.h (TYPE_ATOMIC): New accessor macro.
>>       (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
>>       (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
>>       (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
>>       (atomicDI_type_node, atomicTI_type_node): New macros for type
>>       nodes.
>>       * tree.c (set_type_quals): Set TYPE_ATOMIC.
>>       (find_atomic_core_type): New function.
>>       (build_qualified_type): Adjust alignment for qualified types.
>>       (build_atomic_base): New function
>>       (build_common_tree_nodes): Build atomicQI_type_node,
>>       atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
>>       atomicTI_type_node.
>>       * print-tree.c (print_node): Print atomic qualifier.
>>       * tree-pretty-print.c (dump_generic_node): Print atomic type
>>       attribute.
>>       * target.def (atomic_assign_expand_fenv): New hook.
>>       * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
>>       * doc/tm.texi: Regenerate.
>>       * targhooks.c (default_atomic_assign_expand_fenv): New function.
>>       * targhooks.h (default_atomic_assign_expand_fenv): Declare.
>>       * sync-builtins.def (__atomic_feraiseexcept): New built-in
>>       function.
>
>> 2013-11-05  Joseph Myers  <jos...@codesourcery.com>
>>
>>       * lib/target-supports.exp
>>       (check_effective_target_fenv_exceptions): New function.
>>       * lib/atomic-dg.exp, gcc.dg/atomic/atomic.exp: New files.
>>       * gcc.dg/atomic/c11-atomic-exec-1.c,
>>       gcc.dg/atomic/c11-atomic-exec-2.c,
>>       gcc.dg/atomic/c11-atomic-exec-3.c,
>>       gcc.dg/atomic/c11-atomic-exec-4.c,
>>       gcc.dg/atomic/c11-atomic-exec-5.c, gcc.dg/c11-atomic-1.c,
>>       gcc.dg/c11-atomic-2.c, gcc.dg/c11-atomic-3.c,
>>       gcc.dg/c90-atomic-1.c, gcc.dg/c99-atomic-1.c: New tests.
>>
>> libatomic:
>> 2013-11-05  Joseph Myers  <jos...@codesourcery.com>
>>
>>       * fenv.c: New file.
>>       * libatomic.map (LIBATOMIC_1.1): New symbol version.  Include
>>       __atomic_feraiseexcept.
>>       * configure.ac (libtool_VERSION): Change to 2:0:1.
>>       (fenv.h): Test for header.
>>       * Makefile.am (libatomic_la_SOURCES): Add fenv.c.
>>       * Makefile.in, auto-config.h.in, configure: Regenerate.
>
> The middle-end, libatomic and testsuite changes are ok.

Please note that following code form fenv.c won't generate overflow
exception on x87:

  if (excepts & FP_EX_OVERFLOW)
    {
      volatile float max = __FLT_MAX__;
      r = max * max;
    }

Uros.

Reply via email to