@@ -60,6 +60,7 @@ void MiriGenmcShim::handle_assume_block(ThreadId thread_id, AssumeType assume_ty
60
60
if (const auto * err = std::get_if<VerificationError>(&ret))
61
61
return LoadResultExt::from_error (format_error (*err));
62
62
const auto * ret_val = std::get_if<SVal>(&ret);
63
+ // FIXME(genmc): handle `HandleResult::{Invalid, Reset}` return values.
63
64
if (ret_val == nullptr )
64
65
ERROR (" Unimplemented: load returned unexpected result." );
65
66
return LoadResultExt::from_value (*ret_val);
@@ -89,6 +90,7 @@ void MiriGenmcShim::handle_assume_block(ThreadId thread_id, AssumeType assume_ty
89
90
return StoreResultExt::from_error (format_error (*err));
90
91
91
92
const bool * is_coherence_order_maximal_write = std::get_if<bool >(&ret);
93
+ // FIXME(genmc): handle `HandleResult::{Invalid, Reset}` return values.
92
94
ERROR_ON (
93
95
nullptr == is_coherence_order_maximal_write,
94
96
" Unimplemented: Store returned unexpected result."
@@ -131,6 +133,7 @@ void MiriGenmcShim::handle_fence(ThreadId thread_id, MemOrdering ord) {
131
133
return ReadModifyWriteResultExt::from_error (format_error (*err));
132
134
133
135
const auto * ret_val = std::get_if<SVal>(&load_ret);
136
+ // FIXME(genmc): handle `HandleResult::{Invalid, Reset}` return values.
134
137
if (nullptr == ret_val) {
135
138
ERROR (" Unimplemented: read-modify-write returned unexpected result." );
136
139
}
@@ -152,6 +155,7 @@ void MiriGenmcShim::handle_fence(ThreadId thread_id, MemOrdering ord) {
152
155
return ReadModifyWriteResultExt::from_error (format_error (*err));
153
156
154
157
const bool * is_coherence_order_maximal_write = std::get_if<bool >(&store_ret);
158
+ // FIXME(genmc): handle `HandleResult::{Invalid, Reset}` return values.
155
159
ERROR_ON (
156
160
nullptr == is_coherence_order_maximal_write,
157
161
" Unimplemented: RMW store returned unexpected result."
@@ -196,6 +200,7 @@ void MiriGenmcShim::handle_fence(ThreadId thread_id, MemOrdering ord) {
196
200
if (const auto * err = std::get_if<VerificationError>(&load_ret))
197
201
return CompareExchangeResultExt::from_error (format_error (*err));
198
202
const auto * ret_val = std::get_if<SVal>(&load_ret);
203
+ // FIXME(genmc): handle `HandleResult::{Invalid, Reset}` return values.
199
204
ERROR_ON (nullptr == ret_val, " Unimplemented: load returned unexpected result." );
200
205
const auto read_old_val = *ret_val;
201
206
if (read_old_val != expectedVal)
@@ -216,6 +221,7 @@ void MiriGenmcShim::handle_fence(ThreadId thread_id, MemOrdering ord) {
216
221
if (const auto * err = std::get_if<VerificationError>(&store_ret))
217
222
return CompareExchangeResultExt::from_error (format_error (*err));
218
223
const bool * is_coherence_order_maximal_write = std::get_if<bool >(&store_ret);
224
+ // FIXME(genmc): handle `HandleResult::{Invalid, Reset}` return values.
219
225
ERROR_ON (
220
226
nullptr == is_coherence_order_maximal_write,
221
227
" Unimplemented: compare-exchange store returned unexpected result."
0 commit comments