Skip to content

Commit 6ff8951

Browse files
committed
Workaround for aarch64 regression test failure
aarch64 has unsigned char by default, and the ensuing type casts trip up our quantifier instantiation code.
1 parent 8086824 commit 6ff8951

File tree

1 file changed

+27
-1
lines changed
  • regression/cbmc/Quantifiers-type2

1 file changed

+27
-1
lines changed

regression/cbmc/Quantifiers-type2/main.c

+27-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ int main()
55

66
// clang-format off
77
// clang-format would rewrite the "==>" as "== >"
8-
__CPROVER_assume( __CPROVER_forall { char i; (i>=0 && i<2) ==> b[i]>=10 && b[i]<=10 } );
8+
__CPROVER_assume( __CPROVER_forall { signed char i; (i>=0 && i<2) ==> b[i]>=10 && b[i]<=10 } );
99
__CPROVER_assume( __CPROVER_forall { unsigned i; (i>=0 && i<2) ==> c[i]>=10 && c[i]<=10 } );
1010
// clang-format on
1111

@@ -14,3 +14,29 @@ int main()
1414

1515
return 0;
1616
}
17+
18+
#if 0
19+
We should really teach the simplifier to process
20+
21+
0: >=
22+
* type: bool
23+
0: typecast
24+
* type: signedbv
25+
* width: 32
26+
0: zero_extend
27+
* type: unsignedbv
28+
* width: 32
29+
0: symbol
30+
* type: unsignedbv
31+
* width: 8
32+
* identifier: main::1::1::i!0@2#0
33+
* #quoted: 1
34+
1: typecast
35+
* type: signedbv
36+
* width: 32
37+
0: constant
38+
* type: unsignedbv
39+
* width: 32
40+
* value: 0
41+
42+
#endif

0 commit comments

Comments
 (0)