@@ -41,59 +41,59 @@ define i64 @f2()
41
41
// CHECK(e.execfn<int64_t>("f2") == 5);
42
42
}
43
43
44
- // TEST_CASE("llvm 1 fail") {
45
- // LCompilers::LLVMEvaluator e;
46
- // CHECK_THROWS_AS(e.add_module(R"""(
47
- // define i64 @f1()
48
- // {
49
- // ; FAIL: "=x" is incorrect syntax
50
- // %1 =x alloca i64
51
- // }
52
- // )"""), LCompilers::LCompilersException);
53
- // CHECK_THROWS_WITH(e.add_module(R"""(
54
- // define i64 @f1()
55
- // {
56
- // ; FAIL: "=x" is incorrect syntax
57
- // %1 =x alloca i64
58
- // }
59
- // )"""), "parse_module(): Invalid LLVM IR");
60
- // }
61
-
62
-
63
- // TEST_CASE("llvm 2") {
64
- // LCompilers::LLVMEvaluator e;
65
- // e.add_module(R"""(
66
- // @count = global i64 0
67
-
68
- // define i64 @f1()
69
- // {
70
- // store i64 4, i64* @count
71
- // %1 = load i64, i64* @count
72
- // ret i64 %1
73
- // }
74
- // )""");
75
- // CHECK(e.execfn<int64_t>("f1") == 4);
76
-
77
- // e.add_module(R"""(
78
- // @count = external global i64
79
-
80
- // define i64 @f2()
81
- // {
82
- // %1 = load i64, i64* @count
83
- // ret i64 %1
84
- // }
85
- // )""");
86
- // CHECK(e.execfn<int64_t>("f2") == 4);
87
-
88
- // CHECK_THROWS_AS(e.add_module(R"""(
89
- // define i64 @f3()
90
- // {
91
- // ; FAIL: @count is not defined
92
- // %1 = load i64, i64* @count
93
- // ret i64 %1
94
- // }
95
- // )"""), LCompilers::LCompilersException);
96
- // }
44
+ TEST_CASE (" llvm 1 fail" ) {
45
+ LCompilers::LLVMEvaluator e;
46
+ CHECK_THROWS_AS (e.add_module (R"""(
47
+ define i64 @f1()
48
+ {
49
+ ; FAIL: "=x" is incorrect syntax
50
+ %1 =x alloca i64
51
+ }
52
+ )""" ), LCompilers::LCompilersException);
53
+ CHECK_THROWS_WITH (e.add_module (R"""(
54
+ define i64 @f1()
55
+ {
56
+ ; FAIL: "=x" is incorrect syntax
57
+ %1 =x alloca i64
58
+ }
59
+ )""" ), " parse_module(): Invalid LLVM IR" );
60
+ }
61
+
62
+
63
+ TEST_CASE (" llvm 2" ) {
64
+ LCompilers::LLVMEvaluator e;
65
+ e.add_module (R"""(
66
+ @count = global i64 0
67
+
68
+ define i64 @f1()
69
+ {
70
+ store i64 4, i64* @count
71
+ %1 = load i64, i64* @count
72
+ ret i64 %1
73
+ }
74
+ )""" );
75
+ CHECK (e.execfn <int64_t >(" f1" ) == 4 );
76
+
77
+ e.add_module (R"""(
78
+ @count = external global i64
79
+
80
+ define i64 @f2()
81
+ {
82
+ %1 = load i64, i64* @count
83
+ ret i64 %1
84
+ }
85
+ )""" );
86
+ CHECK (e.execfn <int64_t >(" f2" ) == 4 );
87
+
88
+ CHECK_THROWS_AS (e.add_module (R"""(
89
+ define i64 @f3()
90
+ {
91
+ ; FAIL: @count is not defined
92
+ %1 = load i64, i64* @count
93
+ ret i64 %1
94
+ }
95
+ )""" ), LCompilers::LCompilersException);
96
+ }
97
97
98
98
TEST_CASE (" llvm 3" ) {
99
99
LCompilers::LLVMEvaluator e;
0 commit comments