aboutsummaryrefslogtreecommitdiffstats
path: root/executor/executor.cc
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-04-18 17:09:59 +0200
committerDmitry Vyukov <dvyukov@google.com>2020-04-19 10:26:57 +0200
commit91db3ed8ce2dc73444bcd649f8003cbe96fcb227 (patch)
tree08013bd813d8f038060db3cef25fa02eb7eb53e5 /executor/executor.cc
parent273e386b718deddf0859d1ed99e2699a9d3e2e5d (diff)
prog: add ignore_return and breaks_returns call attribtues
We had these hard-coded for fuchsia and linux accordingly. Replace with call attributes.
Diffstat (limited to 'executor/executor.cc')
-rw-r--r--executor/executor.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/executor/executor.cc b/executor/executor.cc
index 64d84c394..4e6a37055 100644
--- a/executor/executor.cc
+++ b/executor/executor.cc
@@ -1078,6 +1078,10 @@ void execute_call(thread_t* th)
th->reserrno = errno;
if (th->res == -1 && th->reserrno == 0)
th->reserrno = EINVAL; // our syz syscalls may misbehave
+ if (call->attrs.ignore_return) {
+ th->res = 0;
+ th->reserrno = 0;
+ }
if (flag_coverage) {
cover_collect(&th->cov);
if (th->cov.size >= kCoverSize)