[mod.std.c] mod.std.c Digest V16#19

osd@hou2d.UUCP (Orlando Sotomayor-Diaz) (05/15/86)

From: Orlando Sotomayor-Diaz (The Moderator) <cbosgd!std-c>


mod.std.c Digest            Thu, 15 May 86       Volume 16 : Issue  19

Today's Topics:
         MORE C standard differences Apr85-Feb86, part 9 of 9
----------------------------------------------------------------------

Date: 
From: ihnp4!utzoo!lsuc!msb
Subject: MORE C standard differences Apr85-Feb86, part 9 of 9
To: utzoo!ihnp4!hou2d!osd

# {E.5.2 --> E.6.2} Undefined behavior

N-->   * An attempt is made to modify a string literal (#C.1.1.4).



# {E.5.2 --> E.6.2} Undefined behavior

<--O   * The value of a constant is not representable (#C.1.3).



# {E.5.2 --> E.6.2} Undefined behavior

N-->   * For a function call with no function  prototype  declarator  in
N-->     scope, the number of arguments or their types after the default
N-->     argument conversions do not match those of the  formal  parame-
N-->     ters (#C.3.2.2).

N-->   * A function that accepts  a  variable  number  of  arguments  is
N-->     called,  but  no prototype declarator wth the ellipsis notation
N-->     is in scope (#C.3.2.2).  ...

N-->   * A function that accepts a variable number of arguments  is  de-
N-->     fined without the ellipsis notation (#C.7.1).

N-->   * A function prototype is in scope when a  function  is  defined,
N-->     but  a semantically equivalent prototype is not in scope every-
N-->     where the function is called (#C.7.1).



# {E.5.2 --> E.6.2} Undefined behavior

N-->   * The result of the preprocessing concatenation  operator  ##  is
N-->     not a valid token (#C.8.3).



# {E.5.2 --> E.6.2} Undefined behavior

  *    * A {--> library} function argument has an invalid value,  unless
  *      the behavior is specified explicitly (#{D.1.1 --> D.1.3}).



# {E.5.2 --> E.6.2} Undefined behavior

  *    * The value of {a register variable --> an  object  of  automatic
         storage  class  that  does  not  have  volatile  type} has been
         changed bwteen a setjmp and longjmp call (#D.6.2.1).



# {E.5.2 --> E.6.2} Undefined behavior

N-->   * The type of the actual next argument  in  a  variable  argument
N-->     list  disagrees  with  the  type  specified by the va_arg macro
N-->     (#D.8.1.2).

N-->   * A return occurs from a function with a variable  argument  list
N-->     initialized by the va_start macro before the va_end function is
N-->     invoked (#D.8.1.3).



# {E.5.2 --> E.6.2} Undefined behavior

N-->   * A single conversion by the fprintf function produces more  than
N-->     509 characters of output (#D.9.6.1).  ...

N-->   * A single conversion by the fscanf function consumes  more  than
N-->     509 characters of input (#D.9.6.2).



# {E.5.2 --> E.6.2} Undefined behavior

N-->   * The ungetc function is called twice on the same stream  without
N-->     an intervening read, fflush, fseek, or rewind operation on that
N-->     stream (#D.9.7.11).



# {E.5.2 --> E.6.2} Undefined behavior

<--O   * When called by the exit function, a function registered by  the
<--O     onexit function fails to return the value returned by the onex-
<--O     it function at the time of registration (#D.10.4.2).



# {E.5.2 --> E.6.2} Undefined behavior

  *    * The result of {the abs --> an integer arithmetic} function {-->
  *      (abs,  idiv,  or  ldiv)}  cannot  be represented (#{D.5.6.1 -->
         D.10.6}).



# {E.5.3.3 --> E.6.3.3} Characters

N-->   * The {correspondence --> mapping} of characters  in  the  source
N-->     character set {--> in character constants} to characters in the
N-->     execution character set {--> (#C.1.3.4)}.



# {E.5.3.5 --> E.6.3.5} Floating point.

<--O   * The direction of  truncation  when  a  negative  floating-point
<--O     number is converted to an integer (#C.2.1.3).



# {E.5.3.5 --> E.6.3.5} Floating point.

<--O   * Whether the presence in an expression of a float operand but no
<--O     double operand requires the operands to be converted to double.



# {E.5.3.11 --> E.6.3.11} Preprocessing {control lines --> direc-
tives}

N-->   * Whether white space between tokens in a macro argument used  to
N-->     create  a  string literal is retained in the string or replaced
N-->     by a single space character (#C.8.3).



# {E.5.3.12 --> E.6.3.12} Library functions

N-->   * The null pointer constant  to  which  the  macro  NULL  expands
N-->     (#D.1.1).



# {E.5.3.12 --> E.6.3.12} Library functions

N-->   * The effect if the program redefines a reserved  external  iden-
N-->     tifier (#D.1.2).



# {E.5.3.12 --> E.6.3.12} Library functions

  *    * The sets of characters tested for by the  {-->  isalnum,  isal-
  *      pha,}  iscntrl, {--> islower}, isprint, {--> and isupper} func-
         tion (#D.3.1).



# {E.5.3.12 --> E.6.3.12} Library functions

N-->   * The values returned by the mathematics functions on domain  er-
N-->     rors (#D.5).



# {E.5.3.12 --> E.6.3.12} Library functions

N-->   * Whether a text line containing only a  single  space  character
N-->     plus  a terminating new-line character is converted on input to
N-->     a line consisting only of the  terminating  new-line  character
N-->     (#D.9.2).

N-->   * The characteristics of file buffering (#D.9.3).

N-->   * Whether a zero-length file actually exists (#D.9.3).



# {E.5.3.12 --> E.6.3.12} Library functions

N-->   * The contents of the  error  message  strings  returned  by  the
N-->     strerror function (#D.11.6.2).



# {E.5.3.12 --> E.6.3.12} Library functions

<--O   * The era for the time function (#D.12.3).



# {E.5.4 --> E.6.4} Common extensions

N-->   The inclusion of any extension that may cause a strictly conform-
N-->   ing  program  to become invalid renders an implementation noncon-
N-->   forming.  Examples of such extensions are  new  keywords,  prede-
N-->   fined  macro  names,  or library functions with names that do not
N-->   begin with an underscore.



# {--> E.6.4.1 Environment arguments}

N-->   In a hosted environment, the main function receives a third argu-
N-->   ment,  char  *envp[],  that  points to a null-terminated array of
N-->   pointers to char, each of which points to a string that  provides
N-->   information  about the environment for this execution of the pro-
N-->   cess (#B.1.2.2).

Remark: With this inserted subsection, the other  subsections  of
this section are renumbered.



# {E.5.4.4 --> E.6.4.5} Writable string literals

<--O   String literals are arrays of char,  not  arrays  of  const  char
<--O   (#C.1.4).

N-->   String literals are modifiable.  Identical string literals  shall
N-->   be distinct (#C.1.4).

------------------------------

End of mod.std.c Digest - Thu, 15 May 86 13:32:54 EDT
******************************
USENET -> posting only through cbosgd!std-c.
ARPA -> ... through cbosgd!std-c@BERKELEY.ARPA (NOT to INFO-C)
In all cases, you may also reply to the author(s) above.