cid#1468696 Logically dead code
bool bTryXlA1 = (eConv == FormulaGrammar::CONV_A1_XL_A1);
if (...)
eConv = FormulaGrammar::CONV_XL_R1C1;
if (bTryXlA1 || eConv == FormulaGrammar::CONV_OOO)
{
if (...)
{
bExternalName = true;
eConv = FormulaGrammar::CONV_OOO;
}
}
if (!bExternalName && (bTryXlA1 || eConv != FormulaGrammar::CONV_OOO))
{
if (...)
{
if (eConv == FormulaGrammar::CONV_OOO)
{
// this condition can only be reached if bTryXlA1 is true
// but bTryXlA1 is only true if eConv was originally
// CONV_A1_XL_A1. The only things eConv can be changed to
// in this function are CONV_XL_R1C1 or CONV_OOO. If it
// was changed to CONV_OOO then bExternalName was also
// set to true and the block isn't entered if that is true
}
}
}
maybe an unconditional assignment of
eConv = FormulaGrammar::CONV_XL_A1
is a better solution
Change-Id: I45f9947c21662369474048acf2d648733a9b9a6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107076
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index 95185b7..38bcc98 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -8199,8 +8199,6 @@ void ScInterpreter::ScIndirect()
if (nIndex >= 3 && sRefStr[nIndex-1] == '\'')
{
bExternalName = true;
if (eConv == FormulaGrammar::CONV_OOO)
eConv = FormulaGrammar::CONV_XL_A1;
}
}
}