1/***********************************************************************
2*                                                                      *
3*               This software is part of the ast package               *
4*          Copyright (c) 1985-2011 AT&T Intellectual Property          *
5*                      and is licensed under the                       *
6*                  Common Public License, Version 1.0                  *
7*                    by AT&T Intellectual Property                     *
8*                                                                      *
9*                A copy of the License is available at                 *
10*            http://www.opensource.org/licenses/cpl1.0.txt             *
11*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12*                                                                      *
13*              Information and Software Systems Research               *
14*                            AT&T Research                             *
15*                           Florham Park NJ                            *
16*                                                                      *
17*                 Glenn Fowler <gsf@research.att.com>                  *
18*                  David Korn <dgk@research.att.com>                   *
19*                   Phong Vo <kpv@research.att.com>                    *
20*                                                                      *
21***********************************************************************/
22/*
23 * used to test if -last requires -lm
24 *
25 *	arch		-last			-lm
26 *	----		-----			---
27 *	linux.sparc	sfdlen,sfputd		frexp,ldexp
28 */
29
30#if N >= 8
31#define _ISOC99_SOURCE	1
32#endif
33
34#include <math.h>
35
36int
37main()
38{
39#if N & 1
40	long double	value = 0;
41#else
42	double		value = 0;
43#endif
44#if N < 5
45	int		exp = 0;
46#endif
47
48#if N == 1
49	return ldexpl(value, exp) != 0;
50#endif
51#if N == 2
52	return ldexp(value, exp) != 0;
53#endif
54#if N == 3
55	return frexpl(value, &exp) != 0;
56#endif
57#if N == 4
58	return frexp(value, &exp) != 0;
59#endif
60#if N == 5
61	return isnan(value);
62#endif
63#if N == 6
64	return isnan(value);
65#endif
66#if N == 7
67	return copysign(1.0, value) < 0;
68#endif
69#if N == 8
70	return signbit(value);
71#endif
72}
73