]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Made sure that DRD processes empty address ranges without triggering an assertion...
authorBart Van Assche <bvanassche@acm.org>
Wed, 8 Sep 2010 16:29:17 +0000 (16:29 +0000)
committerBart Van Assche <bvanassche@acm.org>
Wed, 8 Sep 2010 16:29:17 +0000 (16:29 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11346

drd/drd_bitmap.c
drd/drd_clientobj.c
drd/drd_main.c
drd/drd_suppression.c
drd/tests/unit_bitmap.c

index 8e0e4c08cd5313e3ecbcaa42014cb26ac60bfd4b..1d97d7b03242c1815740e279d3b9f12a4b53403a 100644 (file)
@@ -129,7 +129,7 @@ void DRD_(bm_access_range_load)(struct bitmap* const bm, Addr a1, Addr a2)
    Addr b, b_next;
 
    tl_assert(bm);
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    tl_assert(a2 < first_address_with_higher_msb(a2));
    tl_assert(a1 == first_address_with_same_lsb(a1));
    tl_assert(a2 == first_address_with_same_lsb(a2));
@@ -226,7 +226,7 @@ void DRD_(bm_access_range_store)(struct bitmap* const bm,
    Addr b, b_next;
 
    tl_assert(bm);
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    tl_assert(a2 < first_address_with_higher_msb(a2));
    tl_assert(a1 == first_address_with_same_lsb(a1));
    tl_assert(a2 == first_address_with_same_lsb(a2));
index 780b793c9e5c9a5aec555562b0f0597ec2e85750..e3b6a94a36d10e1c590af7672d24f2a7cc2363d6 100644 (file)
@@ -107,7 +107,7 @@ Bool DRD_(clientobj_present)(const Addr a1, const Addr a2)
 {
    DrdClientobj *p;
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    VG_(OSetGen_ResetIter)(s_clientobj_set);
    for ( ; (p = VG_(OSetGen_Next)(s_clientobj_set)) != 0; )
    {
index cc019afcd719a842e4a40d0da95aae6d5df4b738..92b38c03ed3607bb0826924dcc94fb6b07d79abe 100644 (file)
@@ -288,7 +288,7 @@ static __inline__
 void drd_start_using_mem(const Addr a1, const SizeT len,
                          const Bool is_stack_mem)
 {
-   tl_assert(a1 < a1 + len);
+   tl_assert(a1 <= a1 + len);
 
    if (!is_stack_mem && s_trace_alloc)
       VG_(message)(Vg_UserMsg, "Started using memory range 0x%lx + %ld%s\n",
@@ -326,7 +326,7 @@ void drd_stop_using_mem(const Addr a1, const SizeT len,
 {
    const Addr a2 = a1 + len;
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
 
    if (UNLIKELY(DRD_(any_address_is_traced)()))
       DRD_(trace_mem_access)(a1, len, eEnd);
index cfe4b037dcc31fc89d6371fda896d50492d7d885..bb12b9f58dd106574dee385a4af18eea38eeb468 100644 (file)
@@ -69,7 +69,7 @@ void DRD_(start_suppression)(const Addr a1, const Addr a2,
                    a1, a2 - a1, reason);
    }
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    DRD_(bm_access_range_store)(DRD_(s_suppressed), a1, a2);
 }
 
@@ -82,7 +82,7 @@ void DRD_(finish_suppression)(const Addr a1, const Addr a2)
       VG_(get_and_pp_StackTrace)(VG_(get_running_tid)(), 12);
    }
 
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    DRD_(bm_clear_store)(DRD_(s_suppressed), a1, a2);
 }
 
@@ -118,7 +118,7 @@ Bool DRD_(range_contains_suppression_or_hbvar)(const Addr a1, const Addr a2)
 
 void DRD_(start_tracing_address_range)(const Addr a1, const Addr a2)
 {
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
 
    DRD_(bm_access_range_load)(DRD_(s_traced), a1, a2);
    if (! DRD_(g_any_address_traced))
@@ -129,7 +129,7 @@ void DRD_(start_tracing_address_range)(const Addr a1, const Addr a2)
 
 void DRD_(stop_tracing_address_range)(const Addr a1, const Addr a2)
 {
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
 
    DRD_(bm_clear_load)(DRD_(s_traced), a1, a2);
    if (DRD_(g_any_address_traced))
@@ -160,7 +160,7 @@ void DRD_(suppression_stop_using_mem)(const Addr a1, const Addr a2)
       }
    }
    tl_assert(a1);
-   tl_assert(a1 < a2);
+   tl_assert(a1 <= a2);
    DRD_(bm_clear)(DRD_(s_suppressed), a1, a2);
    DRD_(bm_clear)(DRD_(s_traced), a1, a2);
 }
index 280943c6cba7064784cc2284427a99dd6d8a5e03..236cf06819831fc1e756884de680a75a1b20f45f 100644 (file)
@@ -63,6 +63,7 @@ static int s_verbose = 1;
 static
 struct { Addr address; SizeT size; BmAccessTypeT access_type; }
   s_test1_args[] = {
+    {                           0, 0, eLoad  },
     {                           0, 1, eLoad  },
     {                         666, 4, eLoad  },
     {                         667, 2, eStore },