16

I just noticed that there has been a correction to the C11 standard called ISO/IEC 9899:2011/Cor 1:2012.

What was changed in this update?

AJM
  • 1,317
  • 2
  • 15
  • 30
Lundin
  • 195,001
  • 40
  • 254
  • 396

1 Answers1

16

This technical corrigendum is available free of charge, from ISO or from your national standard institute.

For convenience, I will cite it as whole here, since there are just two changes:

Page 176, 6.10.8.1

Replace:

__STDC_VERSION__ The integer constant 201ymmL.178)

with:

__STDC_VERSION__ The integer constant 201112L.178)

Page 177, 6.10.8.3

Replace:

__STDC_LIB_EXT1__ The integer constant 201ymmL, intended to indicate support…

with:

__STDC_LIB_EXT1__ The integer constant 201112L, intended to indicate support for the extensions defined in annex K (Bounds-checking interfaces).179)

Lundin
  • 195,001
  • 40
  • 254
  • 396
  • 1
    are they silly? Couldn't they keep at least the corr date and the values inside the program in sync? – glglgl Dec 17 '12 at 12:44
  • 8
    @glglgl The actual standard was released at 201112 and every compiler that is implementing C11 has likely used the 201112L constant while waiting for a formal correction. At any rate, I don't quite see how it makes sense to use the date of the corr release rather than the date of the standard release. – Lundin Dec 17 '12 at 12:55
  • Hm that makes sense. I think you are right... thought one step not far enough. – glglgl Dec 17 '12 at 12:57
  • Why is this TC important? Is it the only difference between the final draft and the Standard? – Ruslan Feb 07 '17 at 13:46
  • @Ruslan These are changes to the first release of the standard, the draft has nothing to do with them. The TC is important in case you need to write compiler switches to check which language version that is used by the compiler. You can write things like `#if __STDC_VERSION__ == 199901L /*C99*/ #elif __STDC_VERSION__ == 201112L /*C11*/ #else /*C90 or non-standard*/ #endif` – Lundin Feb 07 '17 at 14:04
  • The ISO download link is no longer valid. It now redirects to https://www.iso.org/standard/61717.html - which is just a message telling you it's been superseded by C17. The Wayback Machine doesn't help, as that page didn't have a direct download link, just an "add to cart" online store. – AJM May 05 '21 at 17:24
  • 2
    @AJM-Reinstate-Monica Maybe one day there will be a standard for how standards are handled... it's one of the least standardized areas out there :) – Lundin May 05 '21 at 20:03
  • @Lundin I might have spoken too soon - I think I've found a free download elsewhere on iso.org - https://www.iso.org/obp/ui/#iso:std:iso-iec:9899:ed-3:v1:cor:1:v1:en - At least, it's free to view but may not be downloadable. – AJM May 05 '21 at 20:05
  • Following on from my comment of two years ago, I may want to edit this post. *"is available free of charge as a PDF"* doesn't seem to be accurate as whatever's at that ISO link (a) isn't downloadable, and (b) while it may have started as a PDF, I've been examining the page with Firefox's "Inspect" and I can't find any underlying .pdf file in there. It looks like generated HTML that's made to resemble a PDF being viewed. Though whatever's on that pages may have been generated from an original .pdf. Does anyone have any thoughts on this? – AJM May 15 '23 at 15:19