@node Integer Properties
@section Integer Properties
-@c Copyright (C) 011 Free Software Foundation, Inc.
+@c Copyright (C) 2011-2012 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3 or
@subsection Integer Type Determination
@findex TYPE_IS_INTEGER
-@code{TYPE_IS_INTEGER (@var{t})} expands to an integer constant
-expression that is 1 if the arithmetic type @var{t} is a integer type.
+@code{TYPE_IS_INTEGER (@var{t})} expands to a constant
+expression that is 1 if the arithmetic type @var{t} is an integer type.
@code{_Bool} counts as an integer type.
@findex TYPE_SIGNED
-@code{TYPE_SIGNED (@var{t})} expands to an integer constant expression
+@code{TYPE_SIGNED (@var{t})} expands to a constant expression
that is 1 if the arithmetic type @var{t} is a signed integer type or a
-floating type.
+floating type. If @var{t} is an integer type, @code{TYPE_SIGNED (@var{t})}
+expands to an integer constant expression.
Example usage:
These macros yield 1 if the corresponding C operators might not yield
numerically correct answers due to arithmetic overflow. They do not
rely on undefined or implementation-defined behavior. They expand to
-integer constant expresssions if their arguments are. Their
+integer constant expressions if their arguments are. Their
implementations are simple and straightforward, but they are typically
harder to use than the integer type overflow macros. @xref{Integer
Type Overflow}.
numerically correct answers due to arithmetic overflow of an integer
type. They work correctly on all known practical hosts, and do not
rely on undefined behavior due to signed arithmetic overflow. They
-expand to integer constant expresssions if their arguments are. They
+expand to integer constant expressions if their arguments are. They
are easier to use than the integer range overflow macros
(@pxref{Integer Range Overflow}).