annotate lib/unitypes.in.h @ 17444:a83ad7365d40

fnmatch: don't goto over declaration * lib/fnmatch_loop.c (FCT): Hoist local up one level, to avoid undefined behavior for goto over a declaration. Problem reported by Charlie Brown in <http://lists.gnu.org/archive/html/bug-gnulib/2013-07/msg00009.html>.
author Paul Eggert <eggert@cs.ucla.edu>
date Sat, 06 Jul 2013 17:12:29 -0700
parents e542fd46ad6f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16716
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
1 /* Elementary types and macros for the GNU UniString library.
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 16716
diff changeset
2 Copyright (C) 2002, 2005-2006, 2009-2013 Free Software Foundation, Inc.
13354
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4 This program is free software: you can redistribute it and/or modify it
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 under the terms of the GNU Lesser General Public License as published
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6 by the Free Software Foundation; either version 3 of the License, or
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
7 (at your option) any later version.
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful,
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 Lesser General Public License for more details.
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14 You should have received a copy of the GNU Lesser General Public License
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
16
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 #ifndef _UNITYPES_H
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18 #define _UNITYPES_H
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20 /* Get uint8_t, uint16_t, uint32_t. */
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21 #include <stdint.h>
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
22
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
23 /* Type representing a Unicode character. */
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
24 typedef uint32_t ucs4_t;
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
25
16716
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
26 /* Attribute of a function whose result depends only on the arguments
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
27 (not pointers!) and which has no side effects. */
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
28 #ifndef _UC_ATTRIBUTE_CONST
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
29 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
30 # define _UC_ATTRIBUTE_CONST __attribute__ ((__const__))
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
31 # else
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
32 # define _UC_ATTRIBUTE_CONST
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
33 # endif
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
34 #endif
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
35
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
36 /* Attribute of a function whose result depends only on the arguments
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
37 (possibly pointers) and global memory, and which has no side effects. */
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
38 #ifndef _UC_ATTRIBUTE_PURE
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
39 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
40 # define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__))
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
41 # else
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
42 # define _UC_ATTRIBUTE_PURE
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
43 # endif
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
44 #endif
079fb1e73828 Enable common subexpression optimization in GCC.
Bruno Haible <bruno@clisp.org>
parents: 16201
diff changeset
45
13354
86634e33e086 New module 'libunistring-optional'.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
46 #endif /* _UNITYPES_H */