Red Hat ENTERPRISE LINUX 4 Manual page 295

Hide thumbs Also See for ENTERPRISE LINUX 4:
Table of Contents

Advertisement

Chapter 11. Known Causes of Trouble with GCC
When you use
setjmp
those declared
volatile
function:
jmp_buf j;
foo ()
{
int a, b;
a = fun1 ();
if (setjmp (j))
return a;
a = fun2 ();
/*
longjmp (j)
return a + fun3 ();
}
Here
may or may not be restored to its first value when the
a
register, then its first value is restored; otherwise, it keeps the last value stored in it.
If you use the
-W
problem might be possible.
Programs that use preprocessing directives in the middle of macro arguments do not work with
GCC. For example, a program like this will not work:
foobar (
#define luser
hack)
ISO C does not permit such a construct.
K&R compilers allow comments to cross over an inclusion boundary (i.e. started in an include file
and ended in the including file).
Declarations of external variables and functions within a block apply only to the block containing
the declaration. In other words, they have the same scope as any other declaration in the same place.
In some other C compilers, a
within a block.
In traditional C, you can combine
typedef int foo;
typedef long foo bar;
In ISO C, this is not allowed:
PCC allows typedef names to be used as function parameters.
Traditional C allows the following erroneous pair of declarations to appear together in a given
scope:
typedef int foo;
typedef foo foo;
GCC treats all characters of identifiers as significant. According to K&R-1 (2.2), "No more than the
first eight characters are significant, although more may be used.". Also according to K&R-1 (2.2),
"An identifier is a sequence of letters and digits; the first character must be a letter. The underscore
_ counts as a letter.", but GCC also allows dollar signs in identifiers.
PCC allows whitespace in the middle of compound assignment operators such as
ing the ISO standard, does not allow this.
and
, the only automatic variables guaranteed to remain valid are
longjmp
. This is a consequence of automatic register allocation. Consider this
may occur in
fun3
option with the
option, you will get a warning when GCC thinks such a
-O
declaration affects all the rest of the file even if it happens
extern
, etc., with a typedef name, as shown here:
long
and other type modifiers require an explicit
long
. */
longjmp
occurs. If
is allocated in a
a
.
int
. GCC, follow-
+=
287

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the ENTERPRISE LINUX 4 and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Table of Contents