From 01451cf740c46f26c50676effc753b6774fe6739 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Tue, 8 Sep 2015 07:49:39 +0200 Subject: llvm: do not generate code for function call if unreachable. --- src/ortho/llvm/ortho_llvm.adb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/ortho/llvm') diff --git a/src/ortho/llvm/ortho_llvm.adb b/src/ortho/llvm/ortho_llvm.adb index db78bd6..ed11b5f 100644 --- a/src/ortho/llvm/ortho_llvm.adb +++ b/src/ortho/llvm/ortho_llvm.adb @@ -2492,11 +2492,15 @@ package body Ortho_LLVM is Res : ValueRef; Old_Vals : ValueRefArray_Acc; begin - Res := BuildCall (Builder, Assocs.Subprg.LLVM, - Assocs.Vals.all, Assocs.Vals'Last, Empty_Cstring); - Old_Vals := Assocs.Vals; - Free (Old_Vals); - Set_Insn_Dbg (Res); + if not Unreach then + Res := BuildCall (Builder, Assocs.Subprg.LLVM, + Assocs.Vals.all, Assocs.Vals'Last, Empty_Cstring); + Old_Vals := Assocs.Vals; + Free (Old_Vals); + Set_Insn_Dbg (Res); + else + Res := Null_ValueRef; + end if; return O_Enode'(LLVM => Res, Etype => Assocs.Subprg.Dtype); end New_Function_Call; -- cgit