diff options
-rw-r--r-- | gcc/brig/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/brig/brigfrontend/brig-branch-inst-handler.cc | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog index c66b16fba98..bdb70188240 100644 --- a/gcc/brig/ChangeLog +++ b/gcc/brig/ChangeLog @@ -1,3 +1,9 @@ +2017-10-03 Henry Linjamäki <henry.linjamaki@parmance.com> + + * brigfrontend/brig-branch-inst-handler.cc: Fix (more) crash with + calls with more than 4 args. It missed a reference which is required + because vector expansion can move the object to another location. + 2017-09-29 Henry Linjamäki <henry.linjamaki@parmance.com> * brigfrontend/brig-branch-inst-handler.cc: Fix crash with diff --git a/gcc/brig/brigfrontend/brig-branch-inst-handler.cc b/gcc/brig/brigfrontend/brig-branch-inst-handler.cc index a32dd996044..30aec373732 100644 --- a/gcc/brig/brigfrontend/brig-branch-inst-handler.cc +++ b/gcc/brig/brigfrontend/brig-branch-inst-handler.cc @@ -70,7 +70,7 @@ brig_branch_inst_handler::operator () (const BrigBase *base) const BrigOperandOffset32_t *operand_ptr = (const BrigOperandOffset32_t *) data->bytes; - vec<tree, va_gc> *args = i == 0 ? out_args : in_args; + vec<tree, va_gc> *&args = i == 0 ? out_args : in_args; while (bytes > 0) { |