diff --git a/clang/www/c_dr_status.html b/clang/www/c_dr_status.html index ff3387b7caf7ee..75709d418a8374 100644 --- a/clang/www/c_dr_status.html +++ b/clang/www/c_dr_status.html @@ -1,5 +1,5 @@ + "https://www.w3.org/TR/html4/strict.dtd"> @@ -49,211 +49,211 @@

C defect report implementation status

Available in Clang? - 1 + 1 C89 Do functions return values by copying? Yes - 2 + 2 NAD Subclause 6.8.3.2: Semantics of # Unknown - 3 + 3 NAD Subclause 6.1.8: Preprocessing numbers Unknown - 4 + 4 NAD Are multiple definitions of unused identifiers with external linkage permitted? Yes - 5 + 5 NAD May a conforming implementation define and recognize a pragma which would change the semantics of the language? Yes - 6 + 6 C89 It is unclear how the strtoul function behaves when presented with a subject sequence that begins with a minus sign N/A - 7 + 7 NAD Are declarations of the form struct-or-union identifier ; permitted after the identifier tag has already been declared? Yes - 8 + 8 NAD Can a conforming C compiler to perform dead-store elimination? Yes - 9 + 9 C89 Use of typedef names in parameter declarations No - 10 + 10 NAD Is a typedef to an incomplete type legal? Yes - 11 + 11 C89 Merging of declarations for linked identifier Yes - 12 + 12 NAD Is it valid to take the address of a dereferenced void pointer? Yes - 13 + 13 C89 Compatible and composite function types Yes - 14 + 14 C89 Issues with setjmp and fscanf descriptions N/A - 15 + 15 NAD What is the promoted type of a plain int bit-field? Yes - 16 + 16 C89 What does static storage duration do when zero for the type is not all zero bits? Unknown - 17 + 17 C89 39 unrelated questions about C89 Unknown - 18 + 18 NAD How does fscanf behave in the presence of multibyte characters? N/A - 19 + 19 NAD Definition of the term "printing character" and isgraph() N/A - 20 + 20 NAD Is a compiler which allows the Relaxed Ref/Def linkage model to be considered a conforming compiler? Yes - 21 + 21 C89 What is the result of: printf("%#.4o", 345);? N/A - 22 + 22 C89 What is the result of: strtod("100ergs", &ptr);? N/A - 23 + 23 NAD what is the result of strtod("0.0e99999", &ptr);? N/A - 24 + 24 NAD In subclause 7.10.1.4 The strtod function: What does '"C" locale' mean? N/A - 25 + 25 NAD What is meant by 'representable floating-point value?' Yes - 26 + 26 NAD Can a strictly conforming program contain a string literal with '$' or '@'? Yes - 27 + 27 C89 Can there be characters in the character set that are not in the required source character set? Yes - 28 + 28 NAD Do object access rules apply to dynamically allocated objects? Unknown - 29 + 29 NAD Do two types have to have the same tag to be compatible? No - 30 + 30 NAD Can 'sin(DBL_MAX)' result in 'errno' being set to 'EDOM'? N/A - 31 + 31 NAD Can constant expressions overflow? Yes - 32 + 32 NAD Must implementations diagnose extensions to the constant evaluation rules? No - 33 + 33 NAD Conformance questions around 'shall' violations outside of constraints sections Yes - 34 + 34 C89 External declarations in different scopes Yes - 35 + 35 NAD Questions about definition of functions without a prototype @@ -264,31 +264,31 @@

C defect report implementation status

- 36 + 36 NAD May floating-point constants be represented with more precision than implied by its type? Yes - 37 + 37 NAD Questions about multibyte characters and Unicode Yes - 38 + 38 NAD Questions about argument substitution during macro expansion Yes - 39 + 39 NAD Questions about the "C" locale Yes - 40 + 40 NAD 9 unrelated questions about C89 @@ -298,1699 +298,1699 @@

C defect report implementation status

- 41 + 41 NAD Do characters defined in 5.2.1 impact 7.3.1? N/A - 42 + 42 NAD On the behavior of library functions and overlapping objects N/A - 43 + 43 C89 On the definition of the NULL macro Yes - 44 + 44 NAD On the result of the offsetof macro Yes - 45 + 45 NAD Is the behavior of freopen defined when the file is invalid? N/A - 46 + 46 NAD Use of typedef names in parameter declarations Yes - 47 + 47 NAD Questions about declaration conformance Yes - 48 + 48 NAD Clarifications on the abort() function N/A - 49 + 49 C89 Can strxfrm() output more characters than were input? N/A - 50 + 50 NAD Do wide string literals implicitly include <stddef.h>? Yes - 51 + 51 NAD Question on pointer arithmetic Yes - 52 + 52 C89 Editorial corrections Yes - 53 + 53 C89 Accessing a pointer to a function with a prototype through a pointer to pointer to function without a prototype Yes - 54 + 54 C89 Can the string handling functions have a length of 0? N/A - 55 + 55 C89 Signal handler macros should have distinct values N/A - 56 + 56 NAD Floating-point representation precision requirements Yes - 57 + 57 NAD Is there an integral type for every pointer? Yes - 58 + 58 NAD Is there a limit on the number of digits processed by scanf and strtdo? N/A - 59 + 59 NAD Do types have to be completed? Yes - 60 + 60 C89 Array initialization from a string literal Yes - 61 + 61 NAD Whitespace in scanf format string N/A - 62 + 62 NAD Can the rename function be defined to fail? N/A - 63 + 63 Dup Floating-point representation precision requirements Duplicate of 56 - 64 + 64 NAD Null pointer constants Yes - 65 + 65 C89 Questions on locales N/A - 66 + 66 NAD Another question on locales N/A - 67 + 67 NAD Integer and integral type confusion Yes - 68 + 68 NAD 'char' and signed vs unsigned integer types Yes - 69 + 69 NAD Questions about the representation of integer types Yes - 70 + 70 NAD Interchangeability of function arguments Yes - 71 + 71 C89 Enumerated types Yes - 72 + 72 NAD Definition of object and pointer arithmetic Unknown - 73 + 73 NAD Definition of object and array access Unknown - 74 + 74 NAD Alignment and structure padding Unknown - 75 + 75 NAD Alignment of allocated memory N/A - 76 + 76 Open Pointers to the end of arrays Not resolved - 77 + 77 NAD Stability of addresses Yes - 78 + 78 NAD Uniqueness of addresses Unknown - 79 + 79 NAD Constancy of system library function addresses N/A - 80 + 80 C89 Merging of string constants Yes - 81 + 81 NAD Left shift operator Yes - 82 + 82 C89 Multiple varargs Unknown - 83 + 83 C89 Use of library functions N/A - 84 + 84 NAD Incomplete type in function declaration Yes - 85 + 85 C89 Returning from main Unknown - 86 + 86 NAD Object-like macros in system headers Yes - 87 + 87 NAD Order of evaluation Unknown - 88 + 88 NAD Compatibility of incomplete types Yes - 89 + 89 C89 Multiple definitions of macros Yes - 90 + 90 NAD Multibyte characters in formats N/A - 91 + 91 NAD Multibyte encodings Yes - 92 + 92 Dup Partial initialization of strings Duplicate of 60 - 93 + 93 C89 Reservation of identifiers Yes - 94 + 94 NAD Are constraints on function return the same as assignment? Yes - 95 + 95 NAD Is initialization as constrained as assignment? Yes - 96 + 96 NAD Arrays of incomplete types Yes - 97 + 97 Dup Use of offsetof with an incomplete type Duplicate of 40 - 98 + 98 NAD Pre/post increment/decrement of function or incomplete types Yes - 99 + 99 NAD ANSI/ISO C Defect report #rfg6 Unknown - 100 + 100 Dup Defect with the return statement Duplicate of 1 - 101 + 101 C89 Type qualifiers and "as if by assignment" Yes - 102 + 102 NAD Tag redeclaration constraints Yes - 103 + 103 NAD Formal parameters of incomplete type Yes - 104 + 104 Dup Incomplete tag types in a parameter list Duplicate of 84 - 105 + 105 Dup Precedence of requirements on compatible types Duplicate of 17 - 106 + 106 NAD When can you dereference a void pointer? Yes - 107 + 107 NAD Type requirements of the assert macro parameter N/A - 108 + 108 NAD Can a macro identifier hide a keyword? Yes - 109 + 109 NAD Are undefined values and undefined behavior the same? Yes - 110 + 110 Dup Formal parameters having array-of-non-object types Duplicate of 47 - 111 + 111 NAD Conversion of pointer-to-qualified type values to type (void*) values Yes - 112 + 112 NAD Null pointer constants and relational comparisons Yes - 113 + 113 NAD Return expressions in functions declared to return qualified void Yes - 114 + 114 NAD Initialization of multi-dimensional char array objects Yes - 115 + 115 NAD Member declarators as declarators Yes - 116 + 116 NAD Implicit unary & applied to register arrays Yes - 117 + 117 NAD Abstract semantics, sequence points, and expression evaluation Yes - 118 + 118 C89 Completion point for enumerated types Yes - 119 + 119 NAD Initialization of multi-dimensional array objects Yes - 120 + 120 NAD Semantics of assignment to (and initialization of) bit-fields Yes - 121 + 121 NAD Conversions of pointer values to integral types Yes - 122 + 122 Dup Conversion/widening of bit-fields Duplicate of 15 - 123 + 123 NAD 'Type categories' and qualified types Yes - 124 + 124 C89 Casts to 'a void type' versus casts to 'the void type' Yes - 125 + 125 NAD Using things declared as 'extern (qualified) void' Yes - 126 + 126 NAD What does 'synonym' mean with respect to typedef names? Unknown - 127 + 127 Dup Composite type of an enumerated type and an integral type Duplicate of 13 - 128 + 128 NAD Editorial issue relating to tag declarations in type specifiers Unknown - 129 + 129 NAD Tags and name spaces Unknown - 130 + 130 NAD Guarantees when writing text to a stream N/A - 131 + 131 C89 const member qualification and assignment Unknown - 132 + 132 Dup Can undefined behavior occur at translation time, or only at run time? Duplicate of 109 - 133 + 133 NAD Undefined behavior not previously listed in subclause G2 Unknown - 134 + 134 NAD What is an 'error number' for strerror? N/A - 135 + 135 NAD Can the size argument to 'fwrite' be zero? N/A - 136 + 136 NAD 'mktime' and time gaps N/A - 137 + 137 NAD 'printf' and negative floating point values N/A - 138 + 138 C89 Is there an allocated storage duration? Unknown - 139 + 139 C89 Compatibility of complete and incomplete types Unknown - 140 + 140 NAD Behavior of 'setvbuf' N/A - 141 + 141 NAD What is the meaning of EOF? N/A - 142 + 142 C89 Reservation of macro names Unknown - 143 + 143 C89 'fopen' modes N/A - 144 + 144 C89 Preprocessing of preprocessing directives Unknown - 145 + 145 C89 Constant expressions Unknown - 146 + 146 C89 Nugatory constraint Unknown - 147 + 147 C89 Sequence points in library functions Unknown - 148 + 148 NAD Defining library functions Unknown - 149 + 149 C89 The term "variable" Unknown - 150 + 150 C89 Initialization of a char array from a string literal Unknown - 151 + 151 C89 Behavior of 'printf' and flags N/A - 152 + 152 NAD Can you 'longjmp' out of a signal handler? N/A - 153 + 153 Dup Can 'f()' be considered a call to a function-like macro with one empty argument? Duplicate of 3 - 154 + 154 NAD Consistency of implementation-defined values Unknown - 155 + 155 C89 Zero-sized allocations N/A - 156 + 156 C89 Closed streams N/A - 157 + 157 C89 Legitimacy of type synonyms Unknown - 158 + 158 C89 Null pointer conversions Unknown - 159 + 159 C89 Consistency of the C Standard Defects exist in the way the Standard refers to itself Unknown - 160 + 160 C89 Reservation of identifiers Unknown - 161 + 161 NAD Details of reserved symbols Unknown - 162 + 162 C89 'gmtime' and 'localtime' N/A - 163 + 163 C89 Undeclared identifiers Unknown - 164 + 164 NAD Bad declarations Unknown - 165 + 165 C89 Tags and incomplete types Unknown - 166 + 166 Open Meaning of lvalue Not resolved - 167 + 167 Open Consistency of the C Standard (Defect Report UK 015) Not resolved - 168 + 168 Open Consistency of the C Standard (Defect Report UK 016) Not resolved - 169 + 169 C89 Trigraphs Unknown - 170 + 170 C89 Operators and punctuators Unknown - 171 + 171 Open Ranges of integral types Not resolved - 172 + 172 Open Relational and equality operators Not resolved - 173 + 173 Open Line numbers Not resolved - 174 + 174 Open Implicit conversions Not resolved - 175 + 175 Open Correction to Technical Corrigendum 1 Not resolved - 176 + 176 Open Diagnostics for #error Not resolved - 177 + 177 Open Preprocessing directives Not resolved - 178 + 178 Open Conformance with array members and allocations Not resolved - 201 + 201 NAD Integer types longer than long Unknown - 202 + 202 C99 Change return type of certain <fenv.h> functions N/A - 203 + 203 C99 C locale conflict with ISO/IEC 9945-2 N/A - 204 + 204 C99 size_t and ptrdiff_t as a long long type Unknown - 205 + 205 NAD New keyword __at_least Yes - 206 + 206 NAD Default argument conversion of float _Complex Unknown - 207 + 207 C99 Handling of imaginary types Unknown - 208 + 208 C99 Ambiguity in initialization Unknown - 209 + 209 C99 Problem implementing INTN_C macros N/A - 210 + 210 C99 'fprintf' %a and %A conversions recommended practice N/A - 211 + 211 C99 Accuracy of decimal string to/from "binary" (non-decimal) floating-point conversions Unknown - 212 + 212 NAD Binding of multibyte conversion state objects N/A - 213 + 213 C99 Lacuna in 'mbrtowc' N/A - 214 + 214 NAD 'atexit' function registration N/A - 215 + 215 C99 Equality operators Unknown - 216 + 216 C99 Source character encodings Unknown - 217 + 217 NAD 'asctime' limits N/A - 218 + 218 C99 Signs of non-numeric floating point values Unknown - 219 + 219 NAD Effective types Unknown - 220 + 220 C99 Definition of "decimal integer" N/A - 221 + 221 NAD Lacuna in pointer arithmetic Unknown - 222 + 222 C99 Partially initialized structures Unknown - 223 + 223 C99 'FP_FAST_FMAF' and 'FP_FAST_FMAL' should be integer constant N/A - 224 + 224 C99 fpclassify return is not defined N/A - 225 + 225 C99 strtod, strtof and strtold expected form of the subject sequence N/A - 226 + 226 NAD strftime references Yes - 227 + 227 NAD strftime %U, %V, and %W conversion specifiers N/A - 228 + 228 C99 wmemcmp declaration in Annex B N/A - 229 + 229 C99 localeconv() *_sep_by_space table entries issues N/A - 230 + 230 C99 Enumerated type rank Unknown - 231 + 231 NAD Semantics of text-line and non-directive Unknown - 232 + 232 C99 Typo in Annex I Yes - 233 + 233 C99 %g, %G precision specification N/A - 234 + 234 C99 Miscellaneous Typos Yes - 235 + 235 C99 "C" locale collating behaviour not defined N/A - 236 + 236 NAD The interpretation of type based aliasing rule when applied to union objects or allocated objects Unknown - 237 + 237 NAD Declarations using [static] Unknown - 238 + 238 C99 Decriptions of fma() overflow and underflow errors are missing N/A - 239 + 239 C99 Annex F nexttoward description is inconsistent with 7.12.11.4 and F.9.8.3 N/A - 240 + 240 C99 lrint, llrint, lround, llround, and ilogb descriptions are not consistent for unrepresentable results N/A - 241 + 241 C99 Make the base standard and Annex F consistent for pow(0, <0) N/A - 242 + 242 C99 N/A - 243 + 243 C99 Make the base standard and Annex F consistent for fmod(), remainder(), and remquo() for a zero divisor N/A - 244 + 244 C99 tgamma(zero or negative integer) should be considered a pole error N/A - 245 + 245 C99 Missing paragraph numbers Yes - 246 + 246 NAD Completion of declarators Unknown - 247 + 247 C99 Are values a form of behaviour? Unknown - 248 + 248 C99 limits are required for optional types Unknown - 249 + 249 C99 Lacuna applying C89:TC1 to C99 Unknown - 250 + 250 C99 Non-directives within macro arguments Unknown - 251 + 251 C99 Are struct fred and union fred the same type? Unknown - 252 + 252 NAD Incomplete argument types when calling non-prototyped functions Unknown - 253 + 253 NAD "overriding" in designated initializers Unknown - 254 + 254 NAD mbtowc and partial characters N/A - 255 + 255 NAD Non-prototyped function calls and argument mismatches Unknown - 256 + 256 NAD Multiple inclusion of headers N/A - 257 + 257 NAD Common initial sequences and related issues with unions Unknown - 258 + 258 NAD Ordering of "defined" and macro replacement Unknown - 259 + 259 NAD Macro invocations with no arguments Unknown - 260 + 260 NAD Indeterminate values and identical representations Unknown - 261 + 261 NAD Constant expressions Unknown - 262 + 262 C99 Maximum size of bit fields Unknown - 263 + 263 C99 All-zero bits representations Unknown - 264 + 264 NAD Graphic characters N/A - 265 + 265 C99 Preprocessor arithmetic Unknown - 266 + 266 NAD Overflow of sizeof Unknown - 267 + 267 C99 Typos in 5.1.2.3, 7.24.4.4.5, 7.24.6.1, 7.24.6.1 N/A - 268 + 268 C99 Jumps into iteration statements Unknown - 269 + 269 C99 Lacunae in exact-width integer types N/A - 270 + 270 C99 wint_t is not the promoted version of wchar_t N/A - 271 + 271 NAD Lacuna in iswctype and towctrans N/A - 272 + 272 C99 Type category Unknown - 273 + 273 C99 Meaning of __STDC_ISO_10646__ Unknown - 274 + 274 C99 Meaning of "character" in <string.h> functions N/A - 275 + 275 C99 Bitwise-OR of nothing N/A - 276 + 276 C99 Orientation of perror N/A - 277 + 277 NAD Declarations within iteration statements Unknown - 278 + 278 C99 Lacuna in character encodings Unknown - 279 + 279 C99 Wide character code values for members of the basic character set Unknown - 280 + 280 NAD struct tm, member tm_isdst, and mktime() in <time.h> N/A - 281 + 281 C99 CLOCKS_PER_SEC should not be a constant expression N/A - 282 + 282 C99 Flexible array members & struct padding Unknown - 283 + 283 C99 Accessing a non-current union member ("type punning") Unknown - 284 + 284 NAD Does <math.h> define INT_MIN and INT_MAX? N/A - 285 + 285 C99 Conversion of an imaginary type to _Bool Unknown - 286 + 286 C99 Correctly rounded and rounding direction/mode N/A - 287 + 287 Dup Floating-point status flags and sequence points Duplicate of 87 - 288 + 288 NAD Deficiency on multibyte conversions N/A - 289 + 289 C99 Function prototype with [restrict] Unknown - 290 + 290 C99 FLT_EVAL_METHOD and extra precision and/or range Unknown - 291 + 291 C99 Corrections to requirements on inexact floating-point exceptions Unknown - 292 + 292 C99 Use of the word variable Unknown - 293 + 293 C99 Typo in Standard - double complex instead of complex in an example Yes - 294 + 294 NAD Technical question on C99 restrict keyword Unknown - 295 + 295 C99 Incomplete types for function parameters Unknown - 296 + 296 C99 Is exp(INFINITY) overflow? A range error? A divide-by-zero exception? INFINITY without any errors? N/A - 297 + 297 C99 May FE_* floating-point exception flags have bits in common? N/A - 298 + 298 C99 Validity of constant in unsigned long long range Unknown - 299 + 299 C99 Is cabs() a type-generic macro? N/A - 300 + 300 NAD Translation-time expresssion evaluation Unknown - 301 + 301 NAD Meaning of FE_* macros in <fenv.h> Unknown - 302 + 302 C99 6.10.2p5: Adding underscore to portable include file name character set Unknown - 303 + 303 C99 6.10p2: Breaking up the very long sentence describing preprocessing directive Unknown - 304 + 304 C99 Clarifying illegal tokens in #if directives Unknown - 305 + 305 C99 6.10.1p3: Clarifying handling of keywords in #if directives Unknown - 306 + 306 C99 6.10.3p9: Clarifying that rescanning applies to object-like macros Unknown - 307 + 307 C99 6.10.3p10: Clarifiying arguments vs. parameters Unknown - 308 + 308 C99 Clarify that source files et al. need not be "files" Yes - 309 + 309 C99 Clarifying trigraph substitution Unknown - 310 + 310 C99 Add non-corner case example of trigraphs Yes - 311 + 311 C99 Definition of variably modified types Unknown - 312 + 312 C99 Meaning of "known constant size" Yes - 313 + 313 NAD Incomplete arrays of VLAs Unknown - 314 + 314 NAD Cross-translation-unit tagged type compatibility Unknown - 315 + 315 C99 Implementation-defined bit-field types Unknown - 316 + 316 NAD Unprototyped function types Unknown - 317 + 317 NAD Function definitions with empty parentheses Unknown - 318 + 318 C99 (double)0.1f with FLT_EVAL_METHOD being 2 Unknown - 319 + 319 NAD printf("%a", 1.0) and trailing zeros N/A - 320 + 320 C99 Scope of variably modified type Unknown - 321 + 321 C99 Wide character code values for members of the basic character set Unknown - 322 + 322 C99 Problem with TC2 Change #67 (Add perror to the list defining byte input/output functions) N/A - 323 + 323 C99 Potential problems with TC2 #34, #35, and #36 N/A - 324 + 324 C99 Tokenization obscurities Unknown - 325 + 325 NAD strerror() N/A - 326 + 326 C99 asctime() N/A - 327 + 327 C99 Italicize definition of variable length array type, add forward references Yes - 328 + 328 C99 String literals in compound literal initialization Unknown - 329 + 329 C99 Math functions and directed rounding N/A - 330 + 330 C99 Externally visible exceptional conditions N/A - 331 + 331 NAD permit FE_DIVBYZERO when errno says EDOM N/A - 332 + 332 C99 gets is generally unsafe N/A - 333 + 333 C99 Missing Predefined Macro Name Unknown - 334 + 334 Open Missing semantics of comparison macros Not resolved - 335 + 335 NAD _Bool bit-fields Unknown - 336 + 336 C99 What does TMP_MAX actually indicate? N/A - 337 + 337 C99 stdio.h macro definition problems N/A - 338 + 338 C11 C99 seems to exclude indeterminate value from being an uninitialized register Unknown - 339 + 339 Dup Variably modified compound literal Duplicate of 328 - 340 + 340 C99 Composite types for variable-length arrays Unknown - 341 + 341 C99 [*] in abstract declarators Unknown - 342 + 342 Dup VLAs and conditional expressions Duplicate of 340 - 343 + 343 C99 Initializing qualified wchar_t arrays Unknown - 344 + 344 C99 Casts in preprocessor conditional expressions Unknown - 345 + 345 C11 Where does parameter scope start? Unknown