mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-01 15:54:17 +08:00
9486db4fb6
include/ 2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> * demangle.h: Remove uses of PARAMS. * libiberty.h (ANSI_PROTOTYPES): Remove guard since ANSI_PROTOTYPES is always assumed. Remove uses of PARAMS throughout. libiberty/ 2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> Convert libiberty to use ISO C prototype style 2/n. * cp-demangle.h: Remove uses of PARAMS. * cp-demangle.c: Likewise. (d_dump, cplus_demangle_fill_name, cplus_demangle_fill_extended_operator, cplus_demangle_fill_ctor, cplus_demangle_fill_dtor, d_make_empty, d_make_comp, d_make_name, d_make_builtin_type, d_make_operator, d_make_extended_operator, d_make_ctor, d_make_dtor, d_make_template_param, d_make_sub, cplus_demangle_mangled_name, has_return_type, is_ctor_dtor_or_conversion, d_encoding, d_name, d_nested_name, d_prefix, d_unqualified_name, d_source_name, d_number, d_identifier, d_operator_name, d_special_name, d_call_offset, d_ctor_dtor_name, cplus_demangle_type, d_cv_qualifiers, d_function_type, d_bare_function_type, d_class_enum_type, d_array_type, d_pointer_to_member_type, d_template_param, d_template_args, d_template_arg, d_expression, d_expr_primary, d_local_name, d_discriminator, d_add_substitution, d_substitution, d_print_resize, d_print_append_char, d_print_append_buffer, d_print_error, cplus_demangle_print, d_print_comp, d_print_java_identifier, d_print_mod_list, d_print_mod, d_print_function_type, d_print_array_type, d_print_expr_op, d_print_cast, cplus_demangle_init_info, d_demangle, __cxa_demangle, cplus_demangle_v3, java_demangle_v3, is_ctor_or_dtor, is_gnu_v3_mangled_ctor, is_gnu_v3_mangled_dtor, print_usage, main): 2005-03-26 Gabriel Dos Reis <gdr@integrable-solutions.net> Convert libiberty to ISO C prototype style 1/n. * _doprnt.c: Remove conditional #include <varargs.h> on ANSI_PROTOTYPES as the latter is always assumed. (_doprnt, checkit, main): Use ISO C prototype. * alloca.c (find_stack_direction, C_alloca): Use ISO C prototype. * argv.c: Remove conditional #includes on ANSI_PROTOTYPES. (dupargv, freeargv, buildargv, main): Use ISO C prototype. * atexit.c (atexit): Likewise * asprintf.c: Remove conditional include on ANSI_PROTOTYPES. (asprintf): Use ISO C prototype. * basename.c (basename): Likewise * bcmp.c (bcmp): Likewise. * bcopy.c (bcopy): Likewise. * bzero.c (bzero): Likewise. * bsearch.c (bsearch): Likewise. Improve const-correctness. * choose-temp.c (choose_temp_base): Likewise. * calloc.c: Remove conditional #include on ANSI_PROTOTYPES. (calloc): Use ISO C prototype. * clock.c (clock): Likewise. * concat.c: Remove conditional #include on ANSI_PROTOTYPES. (vconcat_length, vconcat_copy, concat_length, concat_copy, concat_copy2, concat, reconcat, main): Use ISO C prototype. * copysign.c (copysign): Likewise. From-SVN: r97085
155 lines
2.6 KiB
C
155 lines
2.6 KiB
C
#include <ansidecl.h>
|
|
|
|
#ifdef __IEEE_BIG_ENDIAN
|
|
|
|
typedef union
|
|
{
|
|
double value;
|
|
struct
|
|
{
|
|
unsigned int sign : 1;
|
|
unsigned int exponent: 11;
|
|
unsigned int fraction0:4;
|
|
unsigned int fraction1:16;
|
|
unsigned int fraction2:16;
|
|
unsigned int fraction3:16;
|
|
|
|
} number;
|
|
struct
|
|
{
|
|
unsigned int sign : 1;
|
|
unsigned int exponent: 11;
|
|
unsigned int quiet:1;
|
|
unsigned int function0:3;
|
|
unsigned int function1:16;
|
|
unsigned int function2:16;
|
|
unsigned int function3:16;
|
|
} nan;
|
|
struct
|
|
{
|
|
unsigned long msw;
|
|
unsigned long lsw;
|
|
} parts;
|
|
long aslong[2];
|
|
} __ieee_double_shape_type;
|
|
|
|
#endif
|
|
|
|
#ifdef __IEEE_LITTLE_ENDIAN
|
|
|
|
typedef union
|
|
{
|
|
double value;
|
|
struct
|
|
{
|
|
#ifdef __SMALL_BITFIELDS
|
|
unsigned int fraction3:16;
|
|
unsigned int fraction2:16;
|
|
unsigned int fraction1:16;
|
|
unsigned int fraction0: 4;
|
|
#else
|
|
unsigned int fraction1:32;
|
|
unsigned int fraction0:20;
|
|
#endif
|
|
unsigned int exponent :11;
|
|
unsigned int sign : 1;
|
|
} number;
|
|
struct
|
|
{
|
|
#ifdef __SMALL_BITFIELDS
|
|
unsigned int function3:16;
|
|
unsigned int function2:16;
|
|
unsigned int function1:16;
|
|
unsigned int function0:3;
|
|
#else
|
|
unsigned int function1:32;
|
|
unsigned int function0:19;
|
|
#endif
|
|
unsigned int quiet:1;
|
|
unsigned int exponent: 11;
|
|
unsigned int sign : 1;
|
|
} nan;
|
|
struct
|
|
{
|
|
unsigned long lsw;
|
|
unsigned long msw;
|
|
} parts;
|
|
|
|
long aslong[2];
|
|
|
|
} __ieee_double_shape_type;
|
|
|
|
#endif
|
|
|
|
#ifdef __IEEE_BIG_ENDIAN
|
|
typedef union
|
|
{
|
|
float value;
|
|
struct
|
|
{
|
|
unsigned int sign : 1;
|
|
unsigned int exponent: 8;
|
|
unsigned int fraction0: 7;
|
|
unsigned int fraction1: 16;
|
|
} number;
|
|
struct
|
|
{
|
|
unsigned int sign:1;
|
|
unsigned int exponent:8;
|
|
unsigned int quiet:1;
|
|
unsigned int function0:6;
|
|
unsigned int function1:16;
|
|
} nan;
|
|
long p1;
|
|
|
|
} __ieee_float_shape_type;
|
|
#endif
|
|
|
|
#ifdef __IEEE_LITTLE_ENDIAN
|
|
typedef union
|
|
{
|
|
float value;
|
|
struct
|
|
{
|
|
unsigned int fraction0: 7;
|
|
unsigned int fraction1: 16;
|
|
unsigned int exponent: 8;
|
|
unsigned int sign : 1;
|
|
} number;
|
|
struct
|
|
{
|
|
unsigned int function1:16;
|
|
unsigned int function0:6;
|
|
unsigned int quiet:1;
|
|
unsigned int exponent:8;
|
|
unsigned int sign:1;
|
|
} nan;
|
|
long p1;
|
|
|
|
} __ieee_float_shape_type;
|
|
#endif
|
|
|
|
#if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
|
|
|
|
double
|
|
copysign (double x, double y)
|
|
{
|
|
__ieee_double_shape_type a,b;
|
|
b.value = y;
|
|
a.value = x;
|
|
a.number.sign =b.number.sign;
|
|
return a.value;
|
|
}
|
|
|
|
#else
|
|
|
|
double
|
|
copysign (double x, double y)
|
|
{
|
|
if ((x < 0 && y > 0) || (x > 0 && y < 0))
|
|
return -x;
|
|
return x;
|
|
}
|
|
|
|
#endif
|