http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57038

--- Comment #26 from Martin Liška <marxin.liska at gmail dot com> ---
Unit tests error:

Program received signal SIGSEGV, Segmentation fault.
0x00002aaab39189ed in ScDocument::CalcAll() () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so
(gdb) bt
#0  0x00002aaab39189ed in ScDocument::CalcAll() () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so
#1  0x00002aaab3a77516 in ScDocShell::DoHardRecalc(bool) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so
#2  0x00002aaaaf8df43e in ScFiltersTest::testContentXLS() () from
/ssd/libreoffice/workdir/unxlngx6.pro/LinkTarget/CppunitTest/libtest_sc_filters_test.so
#3  0x00002aaaaab8614e in CppUnit::TestCaseMethodFunctor::operator()() const ()
from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#4  0x00002aaaaab813b1 in CppUnit::ProtectorChain::ProtectFunctor::operator()()
const () from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#5  0x00002aaaac332800 in (anonymous namespace)::Prot::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/unoexceptionprotector.so
#6  0x00002aaaaab813b1 in CppUnit::ProtectorChain::ProtectFunctor::operator()()
const () from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#7  0x00002aaaaab78016 in CppUnit::DefaultProtector::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#8  0x00002aaaaab813b1 in CppUnit::ProtectorChain::ProtectFunctor::operator()()
const () from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#9  0x00002aaaaab8125b in CppUnit::ProtectorChain::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#10 0x00002aaaaab9073a in CppUnit::TestResult::protect(CppUnit::Functor const&,
CppUnit::Test*, std::string const&) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#11 0x00002aaaaab85c1e in CppUnit::TestCase::run(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#12 0x00002aaaaab86812 in
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#13 0x00002aaaaab8669c in CppUnit::TestComposite::run(CppUnit::TestResult*) ()
from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#14 0x00002aaaaab86812 in
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#15 0x00002aaaaab8669c in CppUnit::TestComposite::run(CppUnit::TestResult*) ()
from /ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#16 0x00002aaaaab94878 in
CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#17 0x00002aaaaab90518 in CppUnit::TestResult::runTest(CppUnit::Test*) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#18 0x00002aaaaab94ac8 in CppUnit::TestRunner::run(CppUnit::TestResult&,
std::string const&) () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libcppunit-1.13.so.0
#19 0x00000000004026aa in (anonymous namespace)::ProtectedFixtureFunctor::run()
const ()
#20 0x0000000000402b27 in sal_main() ()
#21 0x000000000040226b in main ()

Output:
CalcAll called


Program received signal SIGSEGV, Segmentation fault.
0x00002aaab390c19d in ScDocument::CalcAll() () from
/ssd/libreoffice/solver/unxlngx6.pro/lib/libsclo.so

Source code snippet:
void ScDocument::CalcAll()
{
    puts("CalcAll called\n");
    ClearLookupCaches();    // Ensure we don't deliver zombie data.
    puts("CalcAll called2\n");
    bool bOldAutoCalc = GetAutoCalc();
    puts("CalcAll called3\n");
    SetAutoCalc( true );
    puts("CalcAll called4\n");
    TableContainer::iterator it = maTabs.begin();
    puts("CalcAll called5\n");
    for (; it != maTabs.end(); ++it)
        if (*it)
            (*it)->SetDirtyVar();
    for (it = maTabs.begin(); it != maTabs.end(); ++it)
        if (*it)
            (*it)->CalcAll();
    puts("CalcAll called6\n");
    ClearFormulaTree();
    puts("CalcAll called7\n");
    SetAutoCalc( bOldAutoCalc );
    puts("CalcAll called8\n");
}

Link to dumps:
https://docs.google.com/file/d/0B0pisUJ80pO1OFNEc2h4YWVwa2s/edit?usp=sharing

If you need assembler dumps, I can upload it.

Thanks,
Martin

Reply via email to