aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Bug 24150Michael Schmidt2018-07-190-0/+0
|
* Update cparser/GNUmakefile to be compatible with BSD's cut utility. Choose ↵Michael Schmidt2018-07-191-2/+2
| | | | better name for generated test cases.
* Compatibility with OCaml 4.07 (#241) continuedBernhard Schommer2018-07-121-1/+1
| | | | | | | Additionally an open !Integers is needed for the open Integers in the RISC-V Asmexpand, since Integers defines an Int64 module. This silences the warning 44 triggered. Bug 24090
* Fix expansion of ctzl/clzl builtin for 64bit targets (#127)Michael Schmidt2018-07-121-2/+15
| | | | bug 24105, issue #243: expand correct version of ctzl/clzl builtin when long type is 64bit wide
* Bug 24090, Bug 24091Bernhard Schommer2018-07-110-0/+0
|
* Compatibility with OCaml 4.07 (#241) continuedXavier Leroy2018-07-101-1/+1
| | | | | This is a follow-up to commit 6e1a5ce. Another `open! Floats` is needed.
* Clean .foo.aux files created by coqcXavier Leroy2018-07-101-1/+1
|
* Support Coq 8.8.1 (#242)Xavier Leroy2018-07-101-3/+3
|
* Compatibility with OCaml 4.07 (#241)Xavier Leroy2018-07-101-1/+1
| | | | | | | | | OCaml 4.07 introduces a Float submodule of the Stdlib opened-by-default compilation unit. CompCert's Float compilation unit also has a Float submodule. This triggers warning 44 when Floats is opened. The workaround is just to silence the warning with `open! Floats`. Closes: #241
* Update delexer for BUILTIN_OFFSETOF. Bug 23929Bernhard Schommer2018-07-051-0/+1
|
* Bug 23405Bernhard Schommer2018-06-250-0/+0
|
* Typo in -iquote preprocessing option (#239)Frédéric Besson2018-06-201-1/+1
| | | The `-iquote` option was passed to the GNU preprocessor as `-iquore`
* clightgen: add info on configuration and platform to generated .v files (#238)Xavier Leroy2018-06-202-4/+21
| | | | | Information about the run of clightgen is added to the generated .v file as definitions within a sub-module named Info. Closes: #226.
* Bug 23926Bernhard Schommer2018-06-180-0/+0
|
* Typo in Ctyping entryXavier Leroy2018-06-171-1/+1
|
* Treat Outgoing stack slots as caller-save in LTL/Linear semantics (#237)Xavier Leroy2018-06-176-93/+145
| | | | | | | | | | | | | | | | | | | * Outgoing stack slots are set to Vundef on return from a function call, modeling the fact that the callee could write into those stack slots. (CompCert-generated code does not do this, but code generated by other compilers sometimes does.) * Adapt Stackingproof to this new semantics. This requires tighter reasoning on how Linear's locsets are related at call points and at return points. * Most of this reasoning was moved from Stackingproof to Lineartyping, because it can be expressed purely in terms of the Linear semantics, and tracked through the wt_state predicate. * Factor out and into Conventions.v: the notion of callee-save locations, the "agree_callee_save" predicate, and useful lemmas on Locmap.setpair. Now the same "agree_callee_save" predicate is used in Allocproof and in Stackingproof.
* Ignore *.v files generated by testsBernhard Schommer2018-06-071-0/+2
|
* Bug 23383Bernhard Schommer2018-06-070-0/+0
|
* Remove the `_Alignas(expr)` construct (#125)Xavier Leroy2018-06-077-611/+598
| | | | The `_Alignas(expr)` construct is not C11, only `_Alignas(type)` is.
* Bug 23870Bernhard Schommer2018-06-070-0/+0
|
* Ensure compatibility with Menhir before and after version 20180530Xavier Leroy2018-06-062-4/+10
| | | | Inspired by and adapted from pull request #235 by Benoît Viguier.
* Fix menhirLib namespaces, following changes in Menhir version 20180530Jacques-Henri Jourdan2018-06-0613-3/+3
|
* bug 23325, document recently introduced named warningsMichael Schmidt2018-06-051-2/+2
|
* bug 23325, document recently introduced named warningsMichael Schmidt2018-06-051-3/+3
|
* bug 23325, document recently introduced named warningsMichael Schmidt2018-06-051-1/+1
|
* bug 23325, document recently introduced named warningsMichael Schmidt2018-06-051-4/+28
|
* bug 23325, document changed default for c11 named warningMichael Schmidt2018-06-051-1/+1
|
* Bug 23325, Bug 23369, Bug 23351Bernhard Schommer2018-06-040-0/+0
|
* Warn for defs and uses of static variables in nonstatic inline functionsXavier Leroy2018-06-043-16/+42
| | | | | | | Nonstatic inline functions can be expanded in several compilation units. The static variables in question may differ between different expansions. This is a manual merge and adaptation of pull request #P95 by @bschommer.
* Parameterize elab_expr by the full elaboration contextXavier Leroy2018-06-041-30/+42
| | | | | | | | | | | | Before, we would pass just the `ctx_vararg` component of the context to `elab_expr` as a Boolean argument. For future extensions, we will need to pass more of the context to `elab_expr`, so why not pass the whole context? This is what this commit does. The `stmt_context` type is renamed `elab_context` and its definition is moved earlier. The `ctx` argument is passed as is from `elab_stmt` to `elab_expr`.
* Support redefinition of a typedef in another scope (#122)Xavier Leroy2018-06-041-2/+2
| | | | | | | The current check for redefinition is too strict, ruling out e.g. ``` typedef int t; void f(void) { typedef char t; } ```
* Turn off the warning "C11 extension" by defaultXavier Leroy2018-06-041-1/+0
| | | | | | These are extensions w.r.t. C99, not incompatible changes. Nothing bad can happen if those C11 features are used, except making the code incompatible with C99.
* Warn that _Alignas and _Alignof are C11 extensionsXavier Leroy2018-06-041-1/+3
| | | | Consistently with _Noreturn, anonymous structs, etc.
* Don't depend on ../../clightgenXavier Leroy2018-06-021-3/+3
| | | | | It's not really necessary, and under Windows it's really ../../clightgen.exe, which confuses make.
* Model external calls as destroying all caller-save registersXavier Leroy2018-06-0116-20/+127
| | | | | | | | | | The semantics of external function calls in LTL, Linear, Mach and Asm now consider that all caller-save registers are set to Vundef by the call. This models that fact that the external function can modify those registers arbitrarily. Update the proofs of the Allocation, Tunneling, Stacking and Asmgen passes accordingly.
* Use the standalone coq2html tool to generate the HTML documentationXavier Leroy2018-06-016-762/+117
| | | | | coq2html is now a standalone project (https://github.com/xavierleroy/coq2html) packaged as coq-coq2html in OPAM-Coq.
* Add tests for clightgenXavier Leroy2018-06-015-0/+985
| | | | Also: add "parallel" entry to test/Makefile for parallel execution of tests.
* Install the VERSION file along the .vo filesBenoît Viguier2018-05-311-0/+1
| | | This is useful for the VST project and can be useful for others.
* Bug 23806Bernhard Schommer2018-05-300-0/+0
|
* Merge branch 'master' of github.com:AbsInt/CompCertBernhard Schommer2018-05-302-16/+16
|\
| * Update for release 3.3v3.3Xavier Leroy2018-05-301-1/+1
| |
| * coq2html: use OCaml's alternate string literals for multi-line stringsXavier Leroy2018-05-301-15/+15
| |
* | Fix 23806Bernhard Schommer2018-05-300-0/+0
|/
* Changelog: minor updates for 3.3Xavier Leroy2018-05-301-7/+4
|
* Mention optional installation of .vo filesXavier Leroy2018-05-301-0/+3
|
* Install Coq development (.vo files) if requested (#232)Xavier Leroy2018-05-302-4/+36
| | | | | | | | | .vo files are installed if configure options -install-coqdev or -clightgen or -coqdevdir are given. Installation directory is $(PREFIX)/lib/compcert/coq by default and can be changed by configure option -coqdevdir. Closes: #227
* Updates for public release 3.3Xavier Leroy2018-05-302-1/+73
|
* Simplify module Complements and add separate compilation (#121)Xavier Leroy2018-05-291-74/+172
| | | | | | | | | | | | | | | | | * Simplify the theorems about preservation of specifications (section 2) There were three theorems, transf_c_program_preserves_spec, _safety_spec, and _liveness_spec) with the first being needlessly general and the last being hard to understand. Plus, the "liveness" and "safety" terminology wasn't very good. Replaced by two theorems: - transf_c_program_preserves_spec, which is the theorem previously named _safety_spec and talks about specifications that exclude going-wrong behaviors; - transf_c_program_preserves_initial_trace, which is an instance of the theorem previously named _liveness_spec, and now talks about a single initial trace of interest rather than a set of such traces. Added named definitions for properties of interest. Added more explanations. * Added theorems that talk about separate compilation (section 3) These are the theorems from section 1 and 2 but reformulated in terms of multiple C source compilation units being separately compiled to Asm units then linked together.
* Allow align attribute of zero. (#120)Bernhard Schommer2018-05-291-2/+2
| | | | | | As the standard says (and is already implemented) an _Alignas(0) does not change the alignment at all. The same holds for the gcc attribute. Bug 23387
* Removed duplicated whitespace. Bug 23660Bernhard Schommer2018-05-291-1/+1
|