aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Removed the Unix from the libraries for cchecklink.Bernhard Schommer2015-02-201-2/+3
|
* Merge branch 'no-shell' of github.com:AbsInt/CompCert into compcert_windowsBernhard Schommer2015-02-195-96/+272
|\
| * Merge branch 'master' into no-shellBernhard Schommer2015-02-1981-2496/+6257
| |\
| * | Use Unix.create_process instead of Sys.command (continued).Xavier Leroy2014-12-293-96/+122
| | |
| * | Use Unix.create_process instead of Sys.command to run external tools.Xavier Leroy2014-12-192-0/+150
| | | | | | | | | | | | | | | Revised parsing of compcert.ini file to split arguments into words like POSIX shell does (including quotes).
* | | Merge github.com:AbsInt/CompCert into compcert_windowsBernhard Schommer2015-02-1966-2277/+5719
|\ \ \ | | |/ | |/|
| * | The parameter should also have the old name.Bernhard Schommer2015-02-191-3/+3
| | |
| * | Added back symbol functions in the different printer, since they are still ↵Bernhard Schommer2015-02-191-3/+10
| | | | | | | | | | | | needed.
| * | Changed the symbol function back to its old definition.Bernhard Schommer2015-02-191-10/+3
| | |
| * | C reference implementation of the int64 helper functions.Xavier Leroy2015-02-1418-8/+928
| | | | | | | | | | | | In test_int64.c: don't test FP->int64 conversions when the FP argument is out of range.
| * | Interpreter produces more detailed trace, including name of semantic rules used.Xavier Leroy2015-02-083-231/+226
| | | | | | | | | | | | | | | | | | Cexec: record names of rules used in every reduction. Interp: print these rule names in -trace mode. Also: simplified the exploration in "-all" mode; give unique names to states. Csem: fix name of reduction rule "red_call".
| * | Changed the print_globaldef function of the powerpc backend to look like the ↵Bernhard Schommer2015-01-281-10/+2
| | | | | | | | | | | | functions used in the arm and ia32 backend.
| * | Add weaker variants of theorems find_funct_ptr_exists and find_var_exists.Xavier Leroy2015-01-231-70/+122
| | | | | | | | | | | | | | | | | | | | | | | | Instead of assuming name uniqueness for all definitions in the program, these variants only assume uniqueness for a particular name. Use this approach to weaken the hypotheses for match_program and transf_program_partial_augment.
| * | Merge branch 'named-structs'Xavier Leroy2015-01-2336-1630/+4023
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Switch CompCert C / Clight AST of composite types (structs and unions) from a structural representation to a nominal representation, closer to concrete syntax. - This avoids algorithmic inefficiencies due to the structural representation. - Closes PR#4. - Smallstep: make small-step semantics more polymorphic in the type of the global environment. - Globalenvs: introduce Senv.t (symbol environments) as a restricted view on Genv.t (full global environments). - Events, Smallstep: use Senv instead of Genv to talk about global names.
| | * | Define a nonnegative integer "rank" for types to support structural ↵Xavier Leroy2015-01-102-22/+120
| | | | | | | | | | | | | | | | induction over composite types.
| | * | Add a type system for CompCert C and type-checking constructor functions.Xavier Leroy2014-12-318-80/+2101
| | | | | | | | | | | | | | | | | | | | Use these constructor functions in C2C to rely less on the types produced by the unverified elaborator.
| | * | Represent struct and union types by name instead of by structure.Xavier Leroy2014-12-2223-1320/+1535
| | | |
| | * | Make small-step semantics more parametric w.r.t. the type of global ↵Xavier Leroy2014-11-262-27/+42
| | | | | | | | | | | | | | | | environments. Use symbol environments for the part of semantics that deals with observable events.
| | * | Introduce symbol environments (type Senv.t) as a restricted view on global ↵Xavier Leroy2014-11-269-201/+245
| | | | | | | | | | | | | | | | environments (type Genv.t). Use symbol environments instead of global environments for external functions (module Events).
| * | | Delay reads from !Machine.config before it is properly initialized.Xavier Leroy2015-01-228-68/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several definitions in Cutil and elsewhere were accessing the default value of !Machine.config, before it is properly initialized in Driver. Delay evaluation of these definitions, and initialize Machine.config to nonsensical values so that lack of initialization is caught early (e.g. in Cutil.find_matching_*_kind). Also, following up on commit [3b8a094], don't use "wchar_t" typedef to type wide string literals, even if this typedef is in scope. The risk here is to hide an inconsistency between "wchar_t"'s definition in standard headers and CompCert's built-in definition.
| * | | Merge branch containing changes for windows compile.Bernhard Schommer2015-01-203-8/+15
| |\ \ \
| * | | | Protect against redefinition of the __i64_xxx helper library functions.Xavier Leroy2015-01-206-251/+306
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is achieved by declaring these functions in C2C.ml, then re-checking their declarations in the global environment during the Selection pass. In passing, the "hf" parameter for SelectLong functions was removed and replaced by fixed identifiers corresponding to the actual names of the helper functions.
| * | | | Follow-up to [5aecefe]: be conservative also in the case of a "common" ↵Xavier Leroy2015-01-201-6/+21
| | | | | | | | | | | | | | | | | | | | global const variable.
* | | | | Removed the linker flag again.Bernhard Schommer2015-01-202-4/+4
| |/ / / |/| | |
* | | | Renamed LIB into VLIB to avoid clashes with environment variables.Bernhard Schommer2015-01-201-2/+2
| | | |
* | | | Replaced 8 spaces by tabs.Bernhard Schommer2015-01-161-1/+1
| | | |
* | | | Added new target to just remove the cm[iox] files and the build executables.Bernhard Schommer2015-01-161-0/+4
| | | |
* | | | Added missing $ for build_checklinkBernhard Schommer2015-01-151-2/+2
| | | |
* | | | Added variable to the Makefile to specify additional linker commands and ↵Bernhard Schommer2015-01-153-6/+9
|/ / / | | | | | | | | | changed the configure script to deactivated the checklink build if needed.
* | | More prudent analysis of uninitialized const global variables.Xavier Leroy2015-01-091-3/+6
| | | | | | | | | | | | | | | | | | | | | In the presence of separate compilation and linking, an uninitialized const global variable may be initialized elsewhere with a pointer value, falsifying the points-to analysis. Report and fix by Chung-Kil Hur and Jeehoon Kang.
* | | In -g -S mode, annotate the generated asm file with the C source code in ↵Xavier Leroy2015-01-076-86/+243
| | | | | | | | | | | | | | | | | | comments. Refactor printing of .loc debug directives in backend/PrintAnnot.ml
* | | PR#19: there is no reason to reject an empty "switch" statement.Xavier Leroy2015-01-061-2/+0
| | |
* | | PR#16: give option rules precedence over file pattern rules.Xavier Leroy2015-01-033-31/+38
| | | | | | | | | | | | | | | | | | Plus: simplify handling of -help and --help. Plus: error on unrecognized "-xxx" options so that "-foo.c" is not treated as a source file.
* | | PR#14: recognize ".so" arguments as files to pass to the linker.Xavier Leroy2015-01-021-1/+2
| | |
* | | PR#15: vararg functions are not eligible for inlining.Xavier Leroy2015-01-021-1/+1
| | |
* | | Translation of wide string literals.Xavier Leroy2015-01-011-6/+57
| | | | | | | | | | | | | | | | | | | | | Closes PR#13. Also: give string literals type unsigned char [] or signed char [] depending on the machine configuration. (Instead of unsigned char [] before.)
* | | Wrong handling of block-local function declarations (again)Xavier Leroy2015-01-011-12/+7
| | | | | | | | | | | | | | | Reapply commit c3b615f875ed2cf8418453c79c4621d2dc61b0a0 which was overwritten by 2d32afc5daf16c75d1a34f2716c34ae2e1efcce4
* | | Revised type compatibility check w.r.t. handling of attributes.Xavier Leroy2015-01-014-49/+93
| | | | | | | | | | | | | | | | | | | | | We now distinguish 3 modes (instead of 2 previously) for attributes: 1- strict compatibility, 2- ignore top-level attrs, 3- ignore all attrs recursively. In strict mode, const/volatile/restrict attributes must be identical, but nonstandard attributes may vary. Also: ignore top-level attrs when comparing function argument types, like GCC/Clang do. Net result is fewer warnings and type-checking that is closer to GCC/Clang.
* | | PR#12: regression introduced in commit 2d32afcXavier Leroy2014-12-301-2/+0
| | |
* | | PR#6: fix handling of wchar_t and assignments from wide string literals.Xavier Leroy2014-12-305-9/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - cparser/Machine indicates whether wchar_t is signed or not (it is signed int in Linux and BSD, but unsigned short in Win32) - The type of a wide string literal is "wchar_t *" if the typedef "wchar_t" exists in the environment (e.g. after #include <stddef.h>). Only if wchar_t is not defined do we use the default from Machine. - Permit initialization of any integer array from a wide string literal, not just an array of wchar_t.
* | | PR#11: support sizeof(struct {...}) and _Alignof(struct {...})Xavier Leroy2014-12-301-25/+38
| | | | | | | | | | | | This is a partial fix because other cases of struct definitions within type-names are still not handled, e.g. (struct { ... } *) <expr>. However, error reporting was improved for these cases.
* | | Improve printing of errors.Xavier Leroy2014-12-301-3/+11
| | |
* | | PR#10 continued: disambiguate record to avoid OCaml warningXavier Leroy2014-12-301-1/+1
| | |
* | | PR#10: composite definitions must be maintained in the environment.Xavier Leroy2014-12-301-6/+15
| | |
* | | cparser/Parser.v is generated.Xavier Leroy2014-12-301-0/+1
| | |
* | | Recognize more of GCC's alternate keywords (e.g. "__signed").Xavier Leroy2014-12-291-21/+24
| | | | | | | | | | | | | | | Based on the source of GCC 4.9.2. Plus: reordered keywords in alphabetic order to facilitate comparison.
* | | Support "asm volatile" (closes: PR#5).Xavier Leroy2014-12-292-1/+3
| |/ |/| | | | | The CompCert back-end already treats "asm" inserts as "volatile" in GCC's sense (performing unpredictable side-effects), so no change is required outside of the parser.
* | One more cleanup in configure.Xavier Leroy2014-12-181-1/+1
| |
* | No longer include a pre-generated Parser.v in the distribution.Xavier Leroy2014-12-184-61679/+15
| | | | | | | | Assorted updates to configure and Makefile.
* | Merge pull request #3 from AbsInt/pure-makefilesXavier Leroy2014-12-188-85/+371
|\ \ | | | | | | Merge of the pure-makefiles branch, which uses Makefiles instead of ocamlbuild to build the Caml code.