On Thu, Nov 7, 2013 at 5:45 PM, Jakub Jelinek <[email protected]> wrote:
> On Tue, Nov 05, 2013 at 11:21:56PM +0000, Joseph S. Myers wrote:
>> 2013-11-05 Andrew MacLeod <[email protected]>
>> Joseph Myers <[email protected]>
>>
>> * 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 <[email protected]>
>>
>> * 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 <[email protected]>
>>
>> * 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.