1/* Test g++ -Wold-style-cast cleanliness.
2
3Copyright 2003 Free Software Foundation, Inc.
4
5This file is part of the GNU MP Library.
6
7The GNU MP Library is free software; you can redistribute it and/or modify
8it under the terms of the GNU Lesser General Public License as published by
9the Free Software Foundation; either version 3 of the License, or (at your
10option) any later version.
11
12The GNU MP Library is distributed in the hope that it will be useful, but
13WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
15License for more details.
16
17You should have received a copy of the GNU Lesser General Public License
18along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.  */
19
20#include "gmp.h"
21#include "gmpxx.h"
22
23
24/* This code doesn't do anything when run, it just expands various C macros
25   to see that they don't trigger compile-time warnings from g++
26   -Wold-style-cast.  This option isn't used in a normal build, it has to be
27   added manually to make this test worthwhile.  */
28
29void
30check_macros (void)
31{
32  mpz_t          z;
33  long           l = 123;
34  unsigned long  u = 456;
35  int            i;
36  mp_limb_t      limb;
37
38  mpz_init_set_ui (z, 0L);
39  i = mpz_odd_p (z);
40  i = mpz_even_p (z);
41  i = mpz_cmp_si (z, l);
42  i = mpz_cmp_ui (z, u);
43  mpz_clear (z);
44
45  limb = GMP_NUMB_MASK;
46  limb = GMP_NUMB_MAX;
47  limb = GMP_NAIL_MASK;
48
49  mpn_divmod (&limb, &limb, 1, &limb, 1);
50  mpn_divexact_by3 (&limb, &limb, 1);
51}
52
53int
54main (void)
55{
56  return 0;
57}
58