[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#788299: marked as done ([g++-5] Optimizer bug related to exceptions and static symbols)



Your message dated Wed, 23 Jan 2019 10:00:21 +0000
with message-id <E1gmFKX-000B2o-7A@fasolo.debian.org>
and subject line Bug#920166: Removed package(s) from unstable
has caused the Debian Bug report #788299,
regarding [g++-5] Optimizer bug related to exceptions and static symbols
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
788299: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=788299
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: g++-5
Version: 5.1.1-9
Severity: normal

--- Please enter the report below this line. ---

The attached simple C++ source compiles fine but causes a segmentation fault using current version of g++-5 and optimization levels -O2 or -O3. The same code compiles and runs fine with g++ 4.9.1 with either optimization level so it appears there is a problem with the optimizer in version 5.

To reproduce:

$ g++-5 -O2 -g code.cpp
$ gdb -ex run a.out
(...)
Reading symbols from a.out...done.
Starting program: /home/user/a.out

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff75c93d7 in _Unwind_Resume ()
   from /lib/x86_64-linux-gnu/libgcc_s.so.1

Compiling with -O1 or lower produces the expected output when running:
$ g++-5 -O1 test.cpp
$ ./a.out
terminate called after throwing an instance of 'MyException'
  what():  MyException: No!
Aborted


--- System information. ---
Architecture: amd64
Kernel:       Linux 3.16.0-4-amd64

Debian Release: stretch/sid
  500 testing         mirror.aarnet.edu.au
  500 stable          security.debian.org
  500 stable          mirror.aarnet.edu.au


#include <exception>
#include <string>

class MyException : public std::exception
{
protected:
    typedef std::exception Parent;

public:
    MyException(const char* cStr): Parent(), m_reason(cStr) {
        updateMessage();   
    }

    virtual ~MyException() throw() {}

    virtual const std::string& exceptionName() const {
        return exceptionNameValue;
    }

    virtual const char* what() const throw() {
        return m_exceptionMessage.c_str();
    }

    inline void updateMessage() {
        m_exceptionMessage = exceptionName() + ": " + m_reason;
    }

private:
    std::string m_reason;
    std::string m_exceptionMessage;
    static const std::string exceptionNameValue;
};

const std::string MyException::exceptionNameValue("MyException");

int main() {
    throw MyException("No!");
    return 0;
}


--- End Message ---
--- Begin Message ---
Version: 5.5.0-12+rm

Dear submitter,

as the package gcc-5 has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/920166

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Scott Kitterman (the ftpmaster behind the curtain)

--- End Message ---

Reply to: