diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-08-02 00:09:25 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-08-02 00:09:25 +0000 |
commit | 8fb81470d9466b7e3d60cbfd6fc2d04fd1aae78a (patch) | |
tree | f8046bf51bce4125faaa2bfe115d8e0d026e57b8 /gnulib | |
parent | 925e31d9c22c5cdf1d80d9a5683523efc729cfd1 (diff) | |
download | glibc-8fb81470d9466b7e3d60cbfd6fc2d04fd1aae78a.zip glibc-8fb81470d9466b7e3d60cbfd6fc2d04fd1aae78a.tar.gz glibc-8fb81470d9466b7e3d60cbfd6fc2d04fd1aae78a.tar.bz2 |
Update.
* gnulib/Makefile (tests): Add tst-gcc.
* gnulib/tst-gcc.c: New file.
* assert/Makefile (routines): Add __assert.
* assert/Versions: Export __assert for glibc 2.2.
* assert/__assert.c: New file.
* assert/assert.h: Declare __assert.
2000-07-27 Bruno Haible <haible@clisp.cons.org>
* locale/localeinfo.h (_ISCTYPE): New macro.
* posix/fnmatch_loop.c (internal_fnmatch): Use it, support new
LC_CTYPE locale format.
* locale/programs/ld-ctype.c (locale_ctype_t): New field class_b.
(ctype_output): Output class_b[nr] right before class_3level[nr].
(allocate_arrays): Fill class_b, similarly to class_3level.
2000-08-01 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'gnulib')
-rw-r--r-- | gnulib/Makefile | 5 | ||||
-rw-r--r-- | gnulib/tst-gcc.c | 74 |
2 files changed, 78 insertions, 1 deletions
diff --git a/gnulib/Makefile b/gnulib/Makefile index a7255b3..3586feb 100644 --- a/gnulib/Makefile +++ b/gnulib/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991, 1997 Free Software Foundation, Inc. +# Copyright (C) 1991, 1997, 2000 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -18,6 +18,9 @@ subdir := gnulib +# Maybe this is the right place for a test of gcc's interface. +tests = tst-gcc + # Which routines are required is machine-dependent. include ../Rules diff --git a/gnulib/tst-gcc.c b/gnulib/tst-gcc.c new file mode 100644 index 0000000..2d930ae --- /dev/null +++ b/gnulib/tst-gcc.c @@ -0,0 +1,74 @@ +/* Test program for the gcc interface. + Copyright (C) 2000 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper <drepper@cygnus.com>. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include <stdio.h> + +#define __no_type_class -1 +#define __void_type_class 0 +#define __integer_type_class 1 +#define __char_type_class 2 +#define __enumeral_type_class 3 +#define __boolean_type_class 4 +#define __pointer_type_class 5 +#define __reference_type_class 6 +#define __offset_type_class 7 +#define __real_type_class 8 +#define __complex_type_class 9 +#define __function_type_class 10 +#define __method_type_class 11 +#define __record_type_class 12 +#define __union_type_class 13 +#define __array_type_class 14 +#define __string_type_class 15 +#define __set_type_class 16 +#define __file_type_class 17 +#define __lang_type_class 18 + + +#define TEST(var) \ + ({ int wrong = (__builtin_classify_type (__##var##_type) \ + != __##var##_type_class); \ + printf ("%-15s is %d: %s\n", \ + #var, __builtin_classify_type (__##var##_type), \ + wrong ? "WRONG" : "OK"); \ + wrong; \ + }) + + +int +main (void) +{ + int result = 0; + int __integer_type; + void *__pointer_type; + double __real_type; + __complex__ double __complex_type; + struct { int a; } __record_type; + union { int a; int b; } __union_type; + + result |= TEST (integer); + result |= TEST (pointer); + result |= TEST (real); + result |= TEST (complex); + result |= TEST (record); + result |= TEST (union); + + return result; +} |