Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Wiki MarkupAccording to Section 1 of Annex J of \[to the C Standard, Annex J, J.1 [ISO/IEC 9899:1999|AA. Bibliography#ISO/IEC 9899-1999]\], the behavior a program is [unspecified |BB. Definitions#unspecified behavior] in the circumstances outlined the table below. The "Practice" column in the table identifies the coding practice(s) that address the specific case of unspecified behavior 2011], the behavior of a program is unspecified in the circumstances outlined the following table. The descriptions of unspecified behaviors in the "Description" column are direct quotes from the standard. The parenthesized numbers refer to the subclause of the C Standard (C11) that identifies the unspecified behavior. The "Guideline" column in the table identifies the coding practices that address the specific case of unspecified behavior (USB).

26

USB

Description Practice

Guideline   

1

Anchor
usb_1
usb_1

The manner and timing of static initialization (5.1.2).

 

2

Anchor
usb_2
usb_2

The termination status returned to the hosted environment if the return type of main is not compatible with int (5.1.2.2.3).

 

3
Anchor
usb_3
usb_3
The values of objects that are neither lock-free atomic objects nor of type volatile sig_atomic_t and the state of the floating-point environment when the processing of the abstract machine is interrupted by receipt of a signal (5.1.2.3). 

Anchor
usb_4
usb_4

The behavior of the display device if a printing character is written when the active position is at the final position of a line (5.2.2).

 

4

Anchor
usb_45
usb_45

The behavior of the display device if a backspace character is written when the active position is at the initial position of a line 5.2.2).

 

5

Anchor
usb_56
usb_56

The behavior of the display device if a horizontal tab character is written when the active position is at or past the last defined horizontal tabulation position (5.2.2).

 

6

Anchor
usb_67
usb_67

The behavior of the display device if a vertical tab character is written when the active position is at or past the last defined vertical tabulation position (5.2.2).

 

7

Anchor
usb_78
usb_78

How an extended source character that does not correspond to a universal character name counts toward the significant initial characters in an external identifier (5.2.4.1).

 

8

Anchor
usb_89
usb_89

Many aspects of the representations of types (6.2.6).

 

10  9

Anchor
usb_910
usb_910

The value of padding bytes when storing values in structures or unions (6.2.6.1). EXP04-C

 

11 10

Anchor
usb_1011
usb_1011

The value of a union member values of bytes that correspond to union members other than the one last one stored into (6.

 

2.6.1).

EXP39-C

12 11

Anchor
usb_1112
usb_1112

The representation used when storing a value in an object that has more than one object representation for that value (6.2.6.1).

 

13 12

Anchor
usb_1213
usb_1213

The values of any padding bits in integer representations (6.2.6.2).

 

14 13

Anchor
usb_1314
usb_1314

Whether certain operators can generate negative zeros and whether a negative zero becomes a normal zero when stored in an object (6.2.6.2).

 

15 14

Anchor
usb_1415
usb_1415

Whether two string literals result in distinct arrays (6.4.5).

 

16 15

Anchor
usb_1516
usb_1516

The order in which subexpressions are evaluated and the order in which side effects take place, except as specified for the function-call (), &&, ||, ?:, and comma operators (6.5).

EXP30-C

17 16

Anchor
usb_1617
usb_1617

The order in which the function designator, arguments, and subexpressions within the arguments are evaluated in a function call (6.5.2.2).

 

18 17

Anchor
usb_1718
usb_1718

The order of side effects among compound literal initialization list expressions (6.5.2.5).

 

19 18

Anchor
usb_1819
usb_1819

The order in which the operands of an assignment operator are evaluated (6.5.16).

 

20  19

Anchor
usb_1920
usb_1920

The alignment of the addressable storage unit allocated to hold a bit-field (6.7.2.1).

 

21 20

Anchor
usb_2021
usb_2021

Whether a call to an inline function uses the inline definition or the external definition of the function (6.7.4).

 

22 21

Anchor
usb_2122
usb_2122

Whether or not a size expression is evaluated when it is part of the operand of a sizeof operator and changing the value of the size expression would not affect the result of the operator (6.7.6.2).

EXP06EXP44-C

23 22

Anchor
usb_2223
usb_2223

The order in which any side effects occur among the initialization list expressions in an initializer (6.7.9).

 

24 23

Anchor
usb_2324
usb_2324

The layout of storage for function parameters (6.9.1).

 

25 24

Anchor
usb_2425
usb_2425

When a fully expanded macro replacement list contains a function-like macro name as its last preprocessing token and the next preprocessing token from the source file is a (, and the fully expanded replacement of that macro ends with the name of the first macro and the next preprocessing token from the source file is again a (, whether that is considered a nested replacement (6.10.3).

 

26 25

Anchor
usb_2526
usb_2526

The order in which # and ## operations are evaluated during macro substitution (6.

 

Anchor
usb_26usb_26

Whether errno is a macro or an identifier with external linkage.

DCL37-C

10.3.2, 6.10.3.3).

 

27

Anchor
usb_27
usb_27

The state of the floating-point status flags when execution passes from a part of the program translated with FENV_ACCESS "off" to a part translated with FENV_ACCESS "on" (7.6.1).

 

28

Anchor
usb_28
usb_28

The order in which feraiseexcept raises floating-point exceptions, except as stated in F.8.6 (7.6.2.3).

 

29

Anchor
usb_29
usb_29

Whether math_errhandling is a macro or an identifier with external linkage (7.12).

DCL37-C

30

Anchor
usb_30
usb_30

The results of the frexp functions when the specified value is not a floating-point number (7.12.6.4).

 

31
Anchor
usb_31
usb_31
The numeric result of the ilogb functions when the correct value is outside the range of the return type (7.12.6.5, F.10.3.5). 

32

Anchor
usb_32
usb_32

The result of rounding when the value is out of range (7.12.9.5, 7.12.9.7, F.10.6.5).

 

33
Anchor
usb_33
usb_33
The value stored by the remquo functions in the object pointed to by quo when y is zero (7.12.10.3). 
34
Anchor
usb_34
usb_34
Whether a comparison macro argument that is represented in a format wider than its semantic type is converted to the semantic type (7.12.14). 

35  32

Anchor
usb_3235
usb_3235

Whether setjmp is a macro or an identifier with external linkage (7.13).

DCL37-C

36 33

Anchor
usb_3336
usb_3336

Whether va_copy and va_end are macros or identifiers with external linkage (7.16.1).

DCL37-C

37 34

Anchor
usb_3437
usb_3437

The hexadecimal digit before the decimal point when a non-normalized floating-point number is printed with an a or A conversion specifier (7.21.6.1, 7.29.2.1).

 

38 35

Anchor
usb_3538
usb_3538

The value of the file position indicator after a successful call to the ungetc function for a text stream, or the ungetwc function for any stream, until all pushed-back characters are read or discarded (7.21.7.10, 7.29.3.10).

 

39 36

Anchor
usb_3639
usb_3639

The details of the value stored by the fgetpos function (7.21.9.1).

 

40  37

Anchor
usb_3740
usb_3740

The details of the value returned by the ftell function for a text stream (7.21.9.4).

 

41  38

Anchor
usb_3841
usb_3841

Whether the strtod, strtof, strtold, wcstod, wcstof, and wcstold functions convert a minus-signed sequence to a negative number directly or by negating the value resulting from converting the corresponding unsigned sequence (7.22.1.3, 7.29.4.1.1).

 

42  39

Anchor
usb_3942
usb_3942

The order and contiguity of storage allocated by successive calls to the calloc, malloc, and realloc functions (7.22.3).

 

43  40

Anchor
usb_4043
usb_4043

The amount of storage allocated by a successful call to the calloc, malloc, and realloc function when 0 bytes was requested (7.22.3).

MEM04-C

44
Anchor
usb_44
usb_44
Whether a call to the atexit function that does not happen before the exit function is called will succeed (7.22.4.2). 
45
Anchor
usb_45
usb_45
Whether a call to the at_quick_exit function that does not happen before the quick_exit function is called will succeed (7.22.4.3). 

46  41

Anchor
usb_4146
usb_4146

Which of two elements that compare as equal is matched by the bsearch function (7.22.5.1).

 

47  42

Anchor
usb_42
usb_42

The order of two elements that compare as equal in an array sorted by the qsort function (7.22.5.2).

 

48 43

Anchor
usb_4348
usb_4348

The encoding of the calendar time returned by the time function (7.27.2.4).

MSC05-C

49 44

Anchor
usb_4449
usb_4449

The characters stored by the strftime or wcsftime function if any of the time values being converted is outside the normal range (7.27.3.5, 7.29.5.1).

 

50
Anchor
usb_50
usb_50
Whether an encoding error occurs if a wchar_t value that does not correspond to a member of the extended character set appears in the format string for a function in 7.29.2 or 7.29.5 and the specified semantics do not require that value to be processed by wcrtomb (7.29.1). 

51  45

Anchor
usb_4551
usb_4551

The conversion state after an encoding error occurs (7.28.1.1, 7.28.1.2, 7.28.1.3, 7.28.1.4, 7.29.6.3.2, 7.29.6.3.3, 7.29.6.4.1, 7.29.6.4.2).

 

52  46

Anchor
usb_4652
usb_4652

The resulting value when the "invalid" floating-point exception is raised during IEC 60559 floating to integer conversion (F.4).

 

53  47

Anchor
usb_4753
usb_4753

Whether conversion of non-integer IEC 60559 floating values to integer raises the "inexact" floating-point exception (F.4).

 

54
Anchor
usb_54
usb_54
Whether or when library functions in <math.h> raise the "inexact" floating-point exception in an IEC 60559 conformant implementation (F.10). 
55
Anchor
usb_55
usb_55
Whether or when library functions in <math.h> raise an undeserved "underflow" floating-point exception in an IEC 60559 conformant implementation (F.10). 

56  48

Anchor
usb_4856
usb_4856

The exponent value stored by frexp for a NaN or infinity (F.10.3.4).

 

57  49

Anchor
usb_4957
usb_4957

The numeric result returned by the lrint, llrint, lround, and llround functions if the rounded value is outside the range of the return type (F.10.6.5, F.10.6.7).

 

58  50

Anchor
usb_5058
usb_5058

The sign of one part of the complex result of several math functions for certain exceptional values in IEC 60559 compatible implementations (G.6.1.1, G.6.2.2, G.6.2.3, G.6.2.4, G.6.2.5, G.6.2.6, G.6.3.1, G.6.4.2).

 

 

...

Image Added Image Added