blob: b2e7b40c0059153ed0ae07a79b0770946cd9d748 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
pragma Strict
import QtQml
QtObject {
// This does not look like dead code, but each access to 'result' generates a
// DeadTemoralZoneCheck instruction that we ignore when compiling to C++
// after checking statically that 'result' is alive throughout the function.
// Therefore, this function is a torture test for the dead code elimination.
function calc(a: int, b: int) : int {
let result = a;
if (b < 0) {
if (b < -1)
result -= b;
if (b < -2)
result /= b;
} else {
if (b > 1)
result *= b;
if (b > 2)
result += b;
}
return result;
}
property int a: calc(10, -3);
property int b: calc(10, -2);
property int c: calc(10, -1);
property int d: calc(10, 0);
property int e: calc(10, 1);
property int f: calc(10, 2);
property int g: calc(10, 3);
}
|