Skip to content

Commit db8a63f

Browse files
committed
Updates for release 3.12
1 parent 1d14f7a commit db8a63f

File tree

3 files changed

+54
-3
lines changed

3 files changed

+54
-3
lines changed

Changelog

+52-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,57 @@
1+
Release 3.12, 2022-11-25
2+
========================
3+
4+
New features:
5+
- Support unstructured `switch` statements such as Duff's device.
6+
This is achieved via an optional, unverified code rewrite,
7+
activated by option `-funstructured-switch`. (#459)
8+
- Support C11 Unicode string literals and character constants,
9+
such as `u8"été"` or `u32'❎'`.
10+
11+
Usability:
12+
- Support the `-std=c99`, `-std=c11` and `-std=c18` option.
13+
These options are passed to the preprocessor, helping it select the
14+
correct version of the standard header files. It also controls
15+
CompCert's warning for uses of C11 features. (#456)
16+
- The source character set of CompCert is now officially Unicode
17+
with UTF-8 encoding, A new warning `invalid-utf8` is triggered if byte
18+
sequences that are not valid UTF-8 are found outside of comments.
19+
Other source character sets and stricter validation can be supported
20+
via the `-finput-charset` option, see next.
21+
- If the GNU preprocessor is used, the source character set can be
22+
selected with the `-finput-charset=` option. In particular,
23+
`-finput-charset=utf8` checks that the source file is correctly
24+
UTF-8 encoded, and `-finput-charset=ascii` that it contains no
25+
Unicode characters at all.
26+
- Support mergeable sections for string literals and for numerical constants.
27+
- AArch64, ARM, RISC-V and x86 ELF targets: use `.data.rel.ro` section
28+
for `const` data whose initializers contain relocatable addresses.
29+
This is required by the LLVM linker and simplifies the work of the GNU linker.
30+
- `configure` script: add option `-sharedir` to specify where to put
31+
the `compcert.ini` configuration file (#450, #460)
32+
- ARM 32 bits: emit appropriate `Tag_ABI_VFP` attribute (#461)
33+
34+
Optimizations:
35+
- Recognize more `if`-`else` statements that can be if-converted into
36+
a conditional move. In particular, debug statements generated in
37+
`-g` mode no longer prevent this conversion.
38+
39+
Bug fixes:
40+
- Revised simplification of nested conditional, `||`, `&&` expressions
41+
to make sure the generated Clight code is well typed and is not rejected
42+
later by `ccomp` (#458).
43+
- In `-g` mode, when running under Windows, the `ccomp` executable could
44+
fail on an uncaught exception while inserting lines of the source C file
45+
as comments in the generated assembly file.
46+
- Reintroduced DWARF debug information for bit fields in structs
47+
(it was missing since 3.10).
48+
149
Coq development:
2-
- RTLgen: use the state and error monad for reserving goto labels (#371)
50+
- RTLgen: use the state and error monad for reserving `goto` labels (#371)
351
(by Pierre Nigron)
52+
- Add `Declare Scope` statements where appropriate, and re-enable the
53+
`undeclared-scope` warning.
54+
455

556
Release 3.11, 2022-06-27
657
========================

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version=3.11
1+
version=3.12
22
buildnr=
33
tag=
44
branch=

doc/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
<H1 align="center">The CompCert verified compiler</H1>
2727
<H2 align="center">Commented Coq development</H2>
28-
<H3 align="center">Version 3.11, 2022-06-27</H3>
28+
<H3 align="center">Version 3.12, 2022-11-25</H3>
2929

3030
<H2>Introduction</H2>
3131

0 commit comments

Comments
 (0)