Skip to content

Commit 013b847

Browse files
paulbissfacebook-github-bot
authored andcommitted
Stop inserting invalid blockEnd instructions in simplify.cpp
Summary: The simplifier cannot insert block end instructions in the middle of an instruction stream. Generate `LdFuncName` before `RaiseWarning`. Reviewed By: markw65 Differential Revision: D20250260 fbshipit-source-id: ae66953feeeb2ec369c82b76c19e1fca2c5a10b9
1 parent 53984b8 commit 013b847

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

hphp/runtime/vm/jit/simplify.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2370,10 +2370,11 @@ SSATmp* simplifyConvTVToStr(State& env, const IRInstruction* inst) {
23702370
if (srcType <= TObj) return gen(env, ConvObjToStr, catchTrace, src);
23712371
if (srcType <= TRes) return gen(env, ConvResToStr, catchTrace, src);
23722372
if (srcType <= TFunc) {
2373+
auto const ret = gen(env, LdFuncName, src);
23732374
if (RuntimeOption::EvalRaiseFuncConversionWarning) {
23742375
gen(env, RaiseWarning, catchTrace, cns(env, s_msgFuncToStr.get()));
23752376
}
2376-
return gen(env, LdFuncName, src);
2377+
return ret;
23772378
}
23782379
if (srcType <= TClsMeth) {
23792380
if (RuntimeOption::EvalRaiseClsMethConversionWarning) {

0 commit comments

Comments
 (0)