[Pkg-ocaml-maint-commits] [SCM] frama-c packaging branch, master, updated. debian/20111001+nitrogen+dfsg-3-10-gdecd56b
Mehdi Dogguy
mehdi at debian.org
Tue Jun 25 20:30:13 UTC 2013
The following commit has been merged in the master branch:
commit decd56b430b648f3a8db8a8cefc40c9e7a7498c4
Author: Mehdi Dogguy <mehdi at debian.org>
Date: Tue Jun 25 22:04:38 2013 +0200
Update patches.
- Disable 0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch
- Remove 0002-Accept-ocamlgraph-1.8.patch, fixed upstream
- Remove 0006-Patchlevel2-for-Nitrogen-20111001.patch, integrated
diff --git a/debian/changelog b/debian/changelog
index b11834f..4803605 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,10 @@
frama-c (20130601+fluorine3+dfsg-1) UNRELEASED; urgency=low
* New upstream release
+ - Remove 0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch, fixed
+ upstream
+ - Remove 0002-Accept-ocamlgraph-1.8.patch, fixed upstream
+ - Remove 0006-Patchlevel2-for-Nitrogen-20111001.patch, integrated
-- Mehdi Dogguy <mehdi at debian.org> Tue, 25 Jun 2013 21:51:45 +0200
diff --git a/debian/patches/0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch b/debian/patches/0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch
deleted file mode 100644
index adaf32d..0000000
--- a/debian/patches/0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Mehdi Dogguy <mehdi at debian.org>
-Date: Mon, 25 Apr 2011 12:01:09 +0200
-Subject: Add +ocamlgraph to DYN_{O,B}LINKFLAGS
-
----
- Makefile | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b70d794..6432662 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1324,11 +1324,11 @@ share/Makefile.kernel: Makefile share/Makefile.config share/Makefile.common
- $(ECHO) "DYN_OPT_LIBS=$(filter-out $(GEN_OPT_LIBS), $(OPT_LIBS))" >> $@
- $(ECHO) "DYN_ALL_BATCH_CMX=$(addprefix $(FRAMAC_TOP_SRCDIR)/, $(ALL_BATCH_CMX))" >> $@
- $(ECHO) "else" >> $@
-- $(ECHO) "DYN_BLINKFLAGS=$(filter-out $(INCLUDES), $(BLINKFLAGS))" >> $@
-+ $(ECHO) "DYN_BLINKFLAGS=$(filter-out $(INCLUDES), $(BLINKFLAGS)) -I +ocamlgraph" >> $@
- $(ECHO) "DYN_GEN_BYTE_LIBS=$(addprefix $(FRAMAC_LIBDIR)/, $(notdir $(GEN_BYTE_LIBS)))" >> $@
- $(ECHO) "DYN_BYTE_LIBS=$(filter-out $(GEN_BYTE_LIBS), $(BYTE_LIBS))" >> $@
- $(ECHO) "DYN_ALL_BATCH_CMO=$(addprefix $(FRAMAC_LIBDIR)/, $(notdir $(ALL_BATCH_CMO)))" >> $@
-- $(ECHO) "DYN_OLINKFLAGS=$(filter-out $(INCLUDES), $(OLINKFLAGS))" >> $@
-+ $(ECHO) "DYN_OLINKFLAGS=$(filter-out $(INCLUDES), $(OLINKFLAGS)) -I +ocamlgraph" >> $@
- $(ECHO) "DYN_GEN_OPT_LIBS=$(addprefix $(FRAMAC_LIBDIR)/, $(notdir $(GEN_OPT_LIBS)))" >> $@
- $(ECHO) "DYN_OPT_LIBS=$(filter-out $(GEN_OPT_LIBS), $(OPT_LIBS))" >> $@
- $(ECHO) "DYN_ALL_BATCH_CMX=$(addprefix $(FRAMAC_LIBDIR)/, $(notdir $(ALL_BATCH_CMX)))" >> $@
---
diff --git a/debian/patches/0001-Fix-spelling-error-in-binary.patch b/debian/patches/0001-Fix-spelling-error-in-binary.patch
new file mode 100644
index 0000000..d635ea1
--- /dev/null
+++ b/debian/patches/0001-Fix-spelling-error-in-binary.patch
@@ -0,0 +1,68 @@
+From: Mehdi Dogguy <mehdi at debian.org>
+Date: Mon, 2 Jan 2012 14:36:52 +0100
+Subject: Fix spelling-error-in-binary
+
+---
+ Changelog | 4 ++--
+ cil/src/frontc/cabs2cil.ml | 4 ++--
+ man/frama-c.1 | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Changelog b/Changelog
+index aaae442..5f972ef 100644
+--- a/Changelog
++++ b/Changelog
+@@ -219,7 +219,7 @@ o! Kernel [2012/11/24] Various types whose names started by t_ in
+ o Rte [2012/11/23] Export function "exp_annotations" to get RTEs of a C
+ expression as annotations.
+ o*!Kernel [2012/11/23] Added TLogic_coerce constructor to mark
+- explicitely a conversion from a C type to a logical one
++ explicitly a conversion from a C type to a logical one
+ (in particular floating point -> real and integral -> integer).
+ Fixes issue #1309.
+ o! Kernel [2012/11/22] Remove unintuitive ?prj argument from Cil visitors,
+@@ -1237,7 +1237,7 @@ o* Cil [2010/12/20] Fixed bug #645. Ast_info.constant_expr,
+ mkAddrOrStartOf,mkString,parseInt,sizeOf] no longer use
+ an optional argument ?loc. It is now a non optional labeled
+ argument. Previous default value of loc was
+- ~loc:Cil_datatype.Location.unkown which is most of the time
++ ~loc:Cil_datatype.Location.unknown which is most of the time
+ not accurate.
+
+ ###################################
+diff --git a/cil/src/frontc/cabs2cil.ml b/cil/src/frontc/cabs2cil.ml
+index 8351fc2..23d7769 100644
+--- a/cil/src/frontc/cabs2cil.ml
++++ b/cil/src/frontc/cabs2cil.ml
+@@ -2233,7 +2233,7 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool =
+ * local. This can happen when we declare an extern variable with
+ * global scope but we are in a local scope. *)
+
+- (* We lookup in the environement. If this is extern inline then the name
++ (* We lookup in the environment. If this is extern inline then the name
+ * was already changed to foo__extinline. We lookup with the old name *)
+ let lookupname =
+ if vi.vstorage = Static then
+@@ -3427,7 +3427,7 @@ let default_argument_promotion idx exp =
+ "implicit prototype cannot have variadic arguments"
+ | TNamed _ -> assert false (* unrollType *)
+ in
+- (* if we make a promotion, take it explicitely
++ (* if we make a promotion, take it explicitly
+ into account in the argument itself *)
+ let (_,e) = castTo arg_type typ exp in
+ (name,typ,[]), e
+diff --git a/man/frama-c.1 b/man/frama-c.1
+index 667f6a3..e2a1a70 100644
+--- a/man/frama-c.1
++++ b/man/frama-c.1
+@@ -395,7 +395,7 @@ removes break, continue and switch statement before analyses. Defaults to
+ no.
+ .TP
+ .B -then
+-allows to compose analyzes: a first run of Frama-C will occur with the
++allows one to compose analyzes: a first run of Frama-C will occur with the
+ options before
+ .B -then
+ and a second run will be done with the options after
+--
diff --git a/debian/patches/0002-Accept-ocamlgraph-1.8.patch b/debian/patches/0002-Accept-ocamlgraph-1.8.patch
deleted file mode 100644
index 6f2f4e8..0000000
--- a/debian/patches/0002-Accept-ocamlgraph-1.8.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Stephane Glondu <steph at glondu.net>
-Date: Sat, 3 Dec 2011 17:58:39 +0100
-Subject: Accept ocamlgraph 1.8*
-
----
- configure | 2 +-
- configure.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure b/configure
-index aecf0e1..9b31779 100755
---- a/configure
-+++ b/configure
-@@ -3122,7 +3122,7 @@ if test "$OCAMLGRAPH_EXISTS" = "yes"; then
- then
- OCAMLGRAPH_VERSION=`./test_ocamlgraph`
- case $OCAMLGRAPH_VERSION in
-- 1.8) { $as_echo "$as_me:${as_lineno-$LINENO}: OcamlGraph $OCAMLGRAPH_VERSION found: great!" >&5
-+ 1.8*) { $as_echo "$as_me:${as_lineno-$LINENO}: OcamlGraph $OCAMLGRAPH_VERSION found: great!" >&5
- $as_echo "$as_me: OcamlGraph $OCAMLGRAPH_VERSION found: great!" >&6;};;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: OcamlGraph $OCAMLGRAPH_VERSION is incompatible with Frama-C." >&5
- $as_echo "$as_me: OcamlGraph $OCAMLGRAPH_VERSION is incompatible with Frama-C." >&6;}
-diff --git a/configure.in b/configure.in
-index e2ecfe0..abb6c11 100644
---- a/configure.in
-+++ b/configure.in
-@@ -240,7 +240,7 @@ if test "$OCAMLGRAPH_EXISTS" = "yes"; then
- then
- OCAMLGRAPH_VERSION=`./test_ocamlgraph`
- case $OCAMLGRAPH_VERSION in
-- 1.8) AC_MSG_NOTICE([OcamlGraph $OCAMLGRAPH_VERSION found: great!]);;
-+ 1.8*) AC_MSG_NOTICE([OcamlGraph $OCAMLGRAPH_VERSION found: great!]);;
- *) AC_MSG_NOTICE([OcamlGraph $OCAMLGRAPH_VERSION is incompatible with Frama-C.])
- OCAMLGRAPH_EXISTS=no
- OCAMLGRAPH_INCLUDE=;;
---
diff --git a/debian/patches/0004-Use-bin-cp-instead-of-usr-bin-install.patch b/debian/patches/0002-Use-bin-cp-instead-of-usr-bin-install.patch
similarity index 71%
rename from debian/patches/0004-Use-bin-cp-instead-of-usr-bin-install.patch
rename to debian/patches/0002-Use-bin-cp-instead-of-usr-bin-install.patch
index df3cf91..0ea4a21 100644
--- a/debian/patches/0004-Use-bin-cp-instead-of-usr-bin-install.patch
+++ b/debian/patches/0002-Use-bin-cp-instead-of-usr-bin-install.patch
@@ -4,18 +4,18 @@ Subject: Use /bin/cp instead of /usr/bin/install
---
share/Makefile.common | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/share/Makefile.common b/share/Makefile.common
-index c9e8727..ce1a699 100644
+index 90c877e..4441720 100644
--- a/share/Makefile.common
+++ b/share/Makefile.common
-@@ -138,7 +138,7 @@ CHMOD_RW= sh -c \
+@@ -157,7 +157,7 @@ CHMOD_RW= sh -c \
'for f in "$$@"; do \
if test -e $$f; then chmod u+w $$f; fi \
done' chmod_rw
--CP = /usr/bin/install
-+CP = /bin/cp
+-CP = install
++CP = cp
ECHO = echo
MKDIR = mkdir -p
MV = mv
diff --git a/debian/patches/0005-Disable-CHMOD_RO-invocations.patch b/debian/patches/0003-Disable-CHMOD_RO-invocations.patch
similarity index 78%
rename from debian/patches/0005-Disable-CHMOD_RO-invocations.patch
rename to debian/patches/0003-Disable-CHMOD_RO-invocations.patch
index 10e610b..5cfbd65 100644
--- a/debian/patches/0005-Disable-CHMOD_RO-invocations.patch
+++ b/debian/patches/0003-Disable-CHMOD_RO-invocations.patch
@@ -4,13 +4,13 @@ Subject: Disable CHMOD_RO invocations
---
share/Makefile.common | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/share/Makefile.common b/share/Makefile.common
-index ce1a699..1993cf1 100644
+index 4441720..16a6f61 100644
--- a/share/Makefile.common
+++ b/share/Makefile.common
-@@ -133,7 +133,7 @@ external_make = \
+@@ -152,7 +152,7 @@ external_make = \
CAT = cat
CHMOD = chmod
diff --git a/debian/patches/0003-Fix-spelling-error-in-binary.patch b/debian/patches/0003-Fix-spelling-error-in-binary.patch
deleted file mode 100644
index 3e439ef..0000000
--- a/debian/patches/0003-Fix-spelling-error-in-binary.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-From: Mehdi Dogguy <mehdi at debian.org>
-Date: Mon, 2 Jan 2012 14:36:52 +0100
-Subject: Fix spelling-error-in-binary
-
----
- Changelog | 8 ++++----
- cil/src/cil.ml | 2 +-
- cil/src/ext/cfg.mli | 2 +-
- cil/src/frontc/cabs2cil.ml | 2 +-
- cil/src/logic/logic_typing.ml | 6 +++---
- man/frama-c.1 | 2 +-
- src/impact/register.ml | 4 ++--
- src/kernel/cmdline.mli | 2 +-
- 8 files changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/Changelog b/Changelog
-index e527189..909b359 100644
---- a/Changelog
-+++ b/Changelog
-@@ -576,7 +576,7 @@ o* Cil [2010/12/20] Fixed bug #645. Ast_info.constant_expr,
- mkAddrOrStartOf,mkString,parseInt,sizeOf] no longer use
- an optional argument ?loc. It is now a non optional labeled
- argument. Previous default value of loc was
-- ~loc:Cil_datatype.Location.unkown which is most of the time
-+ ~loc:Cil_datatype.Location.unknown which is most of the time
- not accurate.
-
- ###################################
-@@ -729,7 +729,7 @@ o Cil [2010/06/04] Support for custom extension in grammar of behaviors.
- -* Cil [2010/05/31] Extended grammar of pragma lines.
- o* Cil [2010/05/28] Fix bug #489: constant literal present in original
- source are preserved in the AST. NB: this implies that they might
-- be explicitely cast when an integer conversion occur.
-+ be explicitly cast when an integer conversion occur.
- -* Kernel [2010/05/28] Fixed bug in handling of -cpp-command
- o! Cil [2010/05/21] Remove deprecated annotation_status of AAssert
- in the AST
-@@ -908,7 +908,7 @@ o! Kernel [2009/11/24] Use of global logic constants is now a
- - Value [2009/11/24] Handling of behavior-specific assertions now
- correct (albeit imprecise).
- -! Kernel [2009/11/19] The journal is generated only if the GUI is
-- crashing, or if the option -journal-enable is explicitely
-+ crashing, or if the option -journal-enable is explicitly
- set (fixed issue #!330).
- +- Value [2009/11/19] New option -slevel-exclude f for fine-tuning
- semantic unrolling.
-@@ -1206,7 +1206,7 @@ o! Kernel [2009/01/23] File.pretty does not take anymore a formatter
- -* Journal [2009/01/19] Fixed bug with -disable-journal and type with
- no pretty-printer.
- - Configure [2009/01/19] New option -with-all-static in order to
-- statically link all plug-ins, except those explicitely
-+ statically link all plug-ins, except those explicitly
- specified as dynamic (bts #?430).
- -* Journal [2009/01/19] Fixed bug in journalisation of non-functional values.
- -* Makefile [2009/01/19] Fixed bug whenever all plug-ins should be static.
-diff --git a/cil/src/cil.ml b/cil/src/cil.ml
-index 8fb03a2..ea04622 100644
---- a/cil/src/cil.ml
-+++ b/cil/src/cil.ml
-@@ -8880,7 +8880,7 @@ let rec mkCastT ~(e: exp) ~(oldt: typ) ~(newt: typ) =
- (* Watch out for constants *)
- match newt, e.enode with
- (* In the case were we have a representation for the literal,
-- add explicitely the cast. *)
-+ add explicitly the cast. *)
- TInt(newik, []), Const(CInt64(i, _, None)) -> kinteger64 ~loc newik i
- | _ ->
- new_exp
-diff --git a/cil/src/ext/cfg.mli b/cil/src/ext/cfg.mli
-index 1467255..f40ad47 100644
---- a/cil/src/ext/cfg.mli
-+++ b/cil/src/ext/cfg.mli
-@@ -51,7 +51,7 @@ open Cil_types
- (** Compute the CFG for an entire file, by calling cfgFun on each function. *)
- val computeFileCFG: file -> unit
-
--(** clear the sid (except when clear_id is explicitely set to false),
-+(** clear the sid (except when clear_id is explicitly set to false),
- succs, and preds fields of each statement. *)
- val clearFileCFG: ?clear_id:bool -> file -> unit
-
-diff --git a/cil/src/frontc/cabs2cil.ml b/cil/src/frontc/cabs2cil.ml
-index fabb198..a69c921 100644
---- a/cil/src/frontc/cabs2cil.ml
-+++ b/cil/src/frontc/cabs2cil.ml
-@@ -2257,7 +2257,7 @@ let makeGlobalVarinfo (isadef: bool) (vi: varinfo) : varinfo * bool =
- * local. This can happen when we declare an extern variable with
- * global scope but we are in a local scope. *)
-
-- (* We lookup in the environement. If this is extern inline then the name
-+ (* We lookup in the environment. If this is extern inline then the name
- * was already changed to foo__extinline. We lookup with the old name *)
- let lookupname =
- if vi.vstorage = Static then
-diff --git a/cil/src/logic/logic_typing.ml b/cil/src/logic/logic_typing.ml
-index 88d686f..8f76da6 100644
---- a/cil/src/logic/logic_typing.ml
-+++ b/cil/src/logic/logic_typing.ml
-@@ -1803,7 +1803,7 @@ struct
- info.ctor_name
- with Not_found ->
- (* We have a global logic variable. It may depend on
-- a single state (multiple labels need to be explicitely
-+ a single state (multiple labels need to be explicitly
- instantiated and are treated as PLapp below).
- NB: for now, if we have a real function (with parameters
- other than labels) and a label,
-@@ -1832,7 +1832,7 @@ struct
- Tapp(f,[l,curr],[]), typ
- | _ ->
- error loc
-- "%s labels must be explicitely instantiated" x
-+ "%s labels must be explicitly instantiated" x
- in
- match C.find_all_logic_functions x with
-
-@@ -2581,7 +2581,7 @@ struct
- | [l] -> [l,find_current_label loc env]
- | _ ->
- error loc
-- "%s labels must be explicitely instantiated" x
-+ "%s labels must be explicitly instantiated" x
- in
- papp ~loc (info,labels,[])
- | Some _ -> boolean_to_predicate env p0
-diff --git a/man/frama-c.1 b/man/frama-c.1
-index 4c90286..7bfb92d 100644
---- a/man/frama-c.1
-+++ b/man/frama-c.1
-@@ -356,7 +356,7 @@ removes break, continue and switch statement before analyses. Defaults to
- no.
- .TP
- .B -then
--allows to compose analyzes: a first run of Frama-C will occur with the
-+allows one to compose analyzes: a first run of Frama-C will occur with the
- options before
- .B -then
- and a second run will be done with the options after
-diff --git a/src/impact/register.ml b/src/impact/register.ml
-index 42778b7..6b160a4 100644
---- a/src/impact/register.ml
-+++ b/src/impact/register.ml
-@@ -41,12 +41,12 @@ let from_stmt s =
- with
- | Dynamic.Incompatible_type _ ->
- error "versions of plug-ins `impact' and `Security_slicing' seem \
--incompatible.\nCheck the environement variable FRAMAC_PLUGIN.\n\
-+incompatible.\nCheck the environment variable FRAMAC_PLUGIN.\n\
- Analysis discarded.";
- []
- | Dynamic.Unbound_value _ ->
- error "cannot access to plug-in `Security_slicing'.\n\
--Are you sure that it is loaded? Check the environement variable \
-+Are you sure that it is loaded? Check the environment variable \
- FRAMAC_PLUGIN.\n\
- Analysis discarded.";
- []
-diff --git a/src/kernel/cmdline.mli b/src/kernel/cmdline.mli
-index 7bf4673..cb5cdb7 100644
---- a/src/kernel/cmdline.mli
-+++ b/src/kernel/cmdline.mli
-@@ -274,7 +274,7 @@ val journal_enable: bool
- (** @since Beryllium-20090601-beta1 *)
-
- val journal_isset: bool
-- (** -journal-enable/disable explicitely set on the command line.
-+ (** -journal-enable/disable explicitly set on the command line.
- @since Boron-20100401 *)
-
- val journal_name: string
---
diff --git a/debian/patches/0006-Patchlevel2-for-Nitrogen-20111001.patch b/debian/patches/0006-Patchlevel2-for-Nitrogen-20111001.patch
deleted file mode 100644
index c1f224a..0000000
--- a/debian/patches/0006-Patchlevel2-for-Nitrogen-20111001.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From: Mehdi Dogguy <mehdi at debian.org>
-Date: Fri, 6 Jan 2012 09:30:22 +0100
-Subject: Patchlevel2 for Nitrogen 20111001
-
----
- Changelog | 21 ++++++++++++
- src/ai/base.ml | 6 ++-
- src/from/from_register.ml | 3 +-
- src/lib/rangemap.ml | 4 +-
- src/memory_state/lmap.ml | 2 +-
- src/value/eval_exprs.ml | 81 +++++++++++++++++++++++---------------------
- src/value/eval_exprs.mli | 1 +
- src/value/eval_funs.ml | 4 ++-
- src/value/eval_logic.ml | 11 +++++-
- src/value/eval_stmts.ml | 15 +++++---
- 10 files changed, 95 insertions(+), 53 deletions(-)
-
-diff --git a/Changelog b/Changelog
-index 909b359..e60a3ba 100644
---- a/Changelog
-+++ b/Changelog
-@@ -12,6 +12,27 @@
- # '#?nnn' : OLD-BTS entry #nnn #
- ###############################################################################
-
-+-* Value [2011/12/05] An alarm could be omitted on *p = lval;
-+ when p could point into a read-only location such as a string
-+ constant. Fixed.
-+o* Value [2011/12/05] Fix option -absolute-valid-range being reset by
-+ project copies.
-+-* Value [2011/12/05] Fix wrong hash function, which could cause
-+ memory overuse and worse.
-+- Value [2011/10/25] Improve interpretation of ACSL annotations in
-+ presence of typedefs.
-+-* From [2011/10/21] The interpretation of explicit assigns clauses for
-+ library function "assigns *p \from x;" was wrong: every possible
-+ location was assumed to have been overwritten.
-+- Value [2011/10/18] Improve evaluation of logic when option
-+ -val-signed-overflow-alarms is active.
-+-* Value [2011/10/17] Fixed crash when a library function is called in
-+ a state where the function's precondition cannot be true.
-+-* Value [2011/10/10] Fixed spurious alarm \valid(p) in *p = e; when e is
-+ completely invalid. Soundness was not affected (the
-+ alarm for whatever made e invalid was present).
-+
-+
- #####################################
- Open Source Release Nitrogen_20111001
- #####################################
-diff --git a/src/ai/base.ml b/src/ai/base.ml
-index 5669a8c..45659d0 100644
---- a/src/ai/base.ml
-+++ b/src/ai/base.ml
-@@ -117,12 +117,14 @@ let bits_sizeof v =
- | Var (v,_) | Initialized_Var (v,_) ->
- Bit_utils.sizeof_vid v
-
-+let dep_absolute = [Kernel.AbsoluteValidRange.self]
-+
- module MinValidAbsoluteAddress =
- State_builder.Ref
- (Abstract_interp.Int)
- (struct
- let name = "MinValidAbsoluteAddress"
-- let dependencies = []
-+ let dependencies = dep_absolute
- let kind = `Internal
- let default () = Abstract_interp.Int.zero
- end)
-@@ -132,7 +134,7 @@ module MaxValidAbsoluteAddress =
- (Abstract_interp.Int)
- (struct
- let name = "MaxValidAbsoluteAddress"
-- let dependencies = []
-+ let dependencies = dep_absolute
- let kind = `Internal
- let default () = Abstract_interp.Int.minus_one
- end)
-diff --git a/src/from/from_register.ml b/src/from/from_register.ml
-index ca13011..deae68a 100644
---- a/src/from/from_register.ml
-+++ b/src/from/from_register.ml
-@@ -716,11 +716,12 @@ let compute_using_prototype_for_state state kf =
- !Properties.Interp.loc_to_loc ~result:None state
- out.it_content
- in
-+ let exact = Locations.Location_Bits.cardinal_zero_or_one output_loc.loc in
- let output_zone =
- Locations.valid_enumerate_bits ~for_writing:true
- output_loc
- in
-- Lmap_bitwise.From_Model.add_binding ~exact:true
-+ Lmap_bitwise.From_Model.add_binding ~exact
- acc output_zone (input_zone ins)
- with Invalid_argument "not an lvalue" ->
- From_parameters.result
-diff --git a/src/lib/rangemap.ml b/src/lib/rangemap.ml
-index 67a58cd..a93953e 100644
---- a/src/lib/rangemap.ml
-+++ b/src/lib/rangemap.ml
-@@ -88,7 +88,7 @@ module Make(Ord: Datatype.S)(Value: Datatype.S) = struct
- | Node(_,_,_,_,h,_) -> h
-
- let hash = function
-- | Empty -> 13
-+ | Empty -> 0
- | Node(_,_,_,_,_,h) -> h
-
-
-@@ -126,7 +126,7 @@ module Make(Ord: Datatype.S)(Value: Datatype.S) = struct
- let hl = height l and hr = height r in
- let hashl = hash l and hashr = hash r in
- let hashbinding = Hashtbl.hash (x_h, d_h) in
-- let hashtree = 289 (* =17*17 *) * hashl + 17 * hashbinding + hashr in
-+ let hashtree = hashl lxor hashbinding lxor hashr in
- Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1), hashtree)
-
- let bal l x d r =
-diff --git a/src/memory_state/lmap.ml b/src/memory_state/lmap.ml
-index 9867584..8786e5b 100644
---- a/src/memory_state/lmap.ml
-+++ b/src/memory_state/lmap.ml
-@@ -943,7 +943,7 @@ let is_included =
- let plevel = Kernel.ArrayPrecisionLevel.get() in
- let treat_dst k_dst i_dst (acc_lmap : LBase.t) =
- if Base.is_read_only k_dst
-- then acc_lmap
-+ then (CilE.warn_mem_write with_alarms; acc_lmap)
- else
- let validity = Base.validity k_dst in
- let offsetmap_dst = LBase.find_or_default k_dst m in
-diff --git a/src/value/eval_exprs.ml b/src/value/eval_exprs.ml
-index 543bc91..73b5349 100644
---- a/src/value/eval_exprs.ml
-+++ b/src/value/eval_exprs.ml
-@@ -960,7 +960,7 @@ and eval_expr_with_deps_state ~with_alarms deps state e =
- (* Can raise a pointer comparison. CilE needs a binop there *)
- in
- CilE.set_syntactic_context syntactic_context;
-- let result = eval_unop ~with_alarms expr t op in
-+ let result = eval_unop ~check_overflow:true ~with_alarms expr t op in
- state, deps, result
- in
- let r =
-@@ -979,46 +979,49 @@ and eval_expr_with_deps_state ~with_alarms deps state e =
- | _ -> ()); *)
- state, deps, rr
-
--and eval_unop ~with_alarms expr t op =
-+(* This function evaluates a unary minus, but does _not_ check for overflows.
-+ This is left to the caller *)
-+and eval_uneg_exp ~with_alarms expr t =
-+ match unrollType t with
-+ | TFloat _ ->
-+ (try
-+ let v = V.project_ival expr in
-+ let f = Ival.project_float v in
-+ V.inject_ival
-+ (Ival.inject_float (Ival.Float_abstract.neg_float f))
-+ with
-+ V.Not_based_on_null ->
-+ begin match with_alarms.CilE.others with
-+ | CilE.Aignore -> ()
-+ | CilE.Acall f -> f()
-+ | CilE.Alog _ ->
-+ warning_once_current
-+ "converting address to float: assert(TODO)"
-+ end;
-+ V.topify_arith_origin expr
-+ | Ival.Float_abstract.Nan_or_infinite ->
-+ begin match with_alarms.CilE.others with
-+ | CilE.Aignore -> ()
-+ | CilE.Acall f -> f()
-+ | CilE.Alog _ ->
-+ warning_once_current
-+ "converting value to float: assert (TODO)"
-+ end;
-+ V.top_float
-+ )
-+ | _ ->
-+ try
-+ let v = V.project_ival expr in
-+ V.inject_ival (Ival.neg v)
-+ with V.Not_based_on_null -> V.topify_arith_origin expr
-+
-+and eval_unop ~check_overflow ~with_alarms expr t op =
- match op with
- | Neg ->
-- let t = unrollType t in
-- (match t with TFloat _ ->
-- (try
-- let v = V.project_ival expr in
-- let f = Ival.project_float v in
-- V.inject_ival
-- (Ival.inject_float (Ival.Float_abstract.neg_float f))
-- with
-- V.Not_based_on_null ->
-- begin match with_alarms.CilE.others with
-- CilE.Aignore -> ()
-- | CilE.Acall f -> f()
-- | CilE.Alog _ ->
-- warning_once_current
-- "converting address to float: assert(TODO)"
-- end;
-- V.topify_arith_origin expr
-- | Ival.Float_abstract.Nan_or_infinite ->
-- begin match with_alarms.CilE.others with
-- CilE.Aignore -> ()
-- | CilE.Acall f -> f()
-- | CilE.Alog _ ->
-- warning_once_current
-- "converting value to float: assert (TODO)"
-- end;
-- V.top_float
-- )
-- | _ ->
-- let result =
-- try
-- let v = V.project_ival expr in
-- V.inject_ival (Ival.neg v)
-- with V.Not_based_on_null -> V.topify_arith_origin expr
-- in
-- handle_signed_overflow ~with_alarms t result
-- )
--
-+ let r = eval_uneg_exp ~with_alarms expr t in
-+ if check_overflow
-+ then handle_signed_overflow ~with_alarms t r
-+ else r
- | BNot ->
- (try
- let v = V.project_ival expr in
-diff --git a/src/value/eval_exprs.mli b/src/value/eval_exprs.mli
-index 3914cb8..4f76da5 100644
---- a/src/value/eval_exprs.mli
-+++ b/src/value/eval_exprs.mli
-@@ -50,6 +50,7 @@ val eval_binop_int :
- Cvalue.V.t -> binop -> Cvalue.V.t -> Cvalue.V.t
-
- val eval_unop:
-+ check_overflow:bool ->
- with_alarms:CilE.warn_mode ->
- Cvalue.V.t ->
- typ (** Type of the expression under the unop *) ->
-diff --git a/src/value/eval_funs.ml b/src/value/eval_funs.ml
-index 5db6453..4d1c0f4 100644
---- a/src/value/eval_funs.ml
-+++ b/src/value/eval_funs.ml
-@@ -166,7 +166,9 @@ let compute_using_prototype kf ~active_behaviors ~state_with_formals =
- (Kernel_function.get_name kf)
- Cvalue.Model.pretty state_with_formals; *)
- let vi = Kernel_function.get_vi kf in
-- if Cil.hasAttribute "noreturn" vi.vattr then
-+ if (not (Cvalue.Model.is_reachable state_with_formals)) ||
-+ Cil.hasAttribute "noreturn" vi.vattr
-+ then
- None, Cvalue.Model.bottom, Location_Bits.Top_Param.bottom
- else
- let return_type,_formals_type,_inline,_attr =
-diff --git a/src/value/eval_logic.ml b/src/value/eval_logic.ml
-index 52d5276..4be53b6 100644
---- a/src/value/eval_logic.ml
-+++ b/src/value/eval_logic.ml
-@@ -255,7 +255,9 @@ let rec eval_term env result t =
- | BNot -> t (* can only be used on an integer type *)
- | LNot -> intType
- in
-- let eval typ v = eval_unop ~with_alarms v typ op in
-+ let eval typ v =
-+ eval_unop ~check_overflow:false ~with_alarms v typ op
-+ in
- List.map (fun (typ, v) -> typ' typ, eval typ v) l
-
- | Trange (otlow, othigh) ->
-@@ -405,6 +407,11 @@ let eval_term_as_exact_loc env result t =
- )
- | _ -> raise Not_an_exact_loc
-
-+let isPointerCType ct =
-+ match unrollType ct with
-+ TPtr _ -> true
-+ | _ -> false
-+
- let rec reduce_by_predicate ~result env positive p =
- let result =
- match positive,p.content with
-@@ -459,7 +466,7 @@ let rec reduce_by_predicate ~result env positive p =
- | t when isLogicRealOrFloatType t ->
- eval_float (Value_parameters.AllRoundingModes.get ())
- | t when isLogicIntegralType t -> eval_int
-- | Ctype (TPtr _) -> eval_int
-+ | Ctype (ct) when isPointerCType ct -> eval_int
- | _ -> raise Predicate_alarm
- in
- reduce_by_relation eval ~result env positive t1 op t2
-diff --git a/src/value/eval_stmts.ml b/src/value/eval_stmts.ml
-index ca95ff7..64f2415 100644
---- a/src/value/eval_stmts.ml
-+++ b/src/value/eval_stmts.ml
-@@ -562,12 +562,17 @@ struct
- mem_e
- reduced_state
- in
-- if not (Cvalue.Model.is_reachable new_reduced_state)
-+ if (Cvalue.Model.is_reachable reduced_state) &&
-+ not (Cvalue.Model.is_reachable new_reduced_state)
- then begin
-- CilE.set_syntactic_context (CilE.SyMem lv);
-- CilE.warn_mem_write with_alarms ;
-- Value_parameters.result ~current:true
-- "all target addresses were invalid. This path is assumed to be dead.";
-+(* Value_parameters.result ~current:true
-+ "REDUCED:@.%a at .TO:@.%a at ."
-+ Cvalue.Model.pretty reduced_state
-+ Cvalue.Model.pretty new_reduced_state; *)
-+ CilE.set_syntactic_context (CilE.SyMem lv);
-+ CilE.warn_mem_write with_alarms ;
-+ Value_parameters.result ~current:true
-+ "all target addresses were invalid. This path is assumed to be dead.";
- end;
- new_reduced_state
- (* | Var _ , Index _ -> assert false
---
diff --git a/debian/patches/series b/debian/patches/series
index c2fedb3..06464b6 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,6 +1,3 @@
-0001-Add-ocamlgraph-to-DYN_-O-B-LINKFLAGS.patch
-0002-Accept-ocamlgraph-1.8.patch
-0003-Fix-spelling-error-in-binary.patch
-0004-Use-bin-cp-instead-of-usr-bin-install.patch
-0005-Disable-CHMOD_RO-invocations.patch
-0006-Patchlevel2-for-Nitrogen-20111001.patch
+0001-Fix-spelling-error-in-binary.patch
+0002-Use-bin-cp-instead-of-usr-bin-install.patch
+0003-Disable-CHMOD_RO-invocations.patch
--
frama-c packaging
More information about the Pkg-ocaml-maint-commits
mailing list