diff --git a/src/compiler.cpp b/src/compiler.cpp index 057e238314..ac02d1ebf2 100644 --- a/src/compiler.cpp +++ b/src/compiler.cpp @@ -2911,6 +2911,8 @@ class CombineEvent: public Event { } virtual void compile(Context* c) { + first->source->freeze(c); + Site* target; if (c->arch->condensedAddressing()) { maybePreserve(c, stackBefore, localsBefore, secondSize, second, @@ -2924,6 +2926,8 @@ class CombineEvent: public Event { addSite(c, stackBefore, localsBefore, resultSize, result, target); } + first->source->thaw(c); + // fprintf(stderr, "combine %p and %p into %p\n", first, second, result); apply(c, type, firstSize, first->source, secondSize, second->source, resultSize, target);