[Bug 1830506] Re: internal compiler error: in type_throw_all_p, at cp/except.c:1307

BaiYang 1830506 at bugs.launchpad.net
Sun May 26 00:34:34 UTC 2019


This seems to be a known and fixed issue:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67870

Can this fix migrate back to the 4.9 branch?

Thanks

** Bug watch added: GCC Bugzilla #67870
   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67870

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-4.9 in Ubuntu.
https://bugs.launchpad.net/bugs/1830506

Title:
   internal compiler error: in type_throw_all_p, at cp/except.c:1307

Status in gcc-4.9 package in Ubuntu:
  New

Bug description:
  ubuntu 16.04, gcc 4.9.4 installed from: ppa:ubuntu-toolchain-r/test

  When compile a simple test code:
  /.../__test.cpp:186:3: internal compiler error: in type_throw_all_p, at cp/except.c:1307
     {}
     ^
  Please submit a full bug report,

  The full code is here:

  /////////////////////////////////// begin of __test.cpp

  #include <iostream>
  #include <string>
  #include <iomanip>
  #include <limits.h>
  #include <time.h>
  #include <stdio.h>
  #include <stdlib.h>
  #include <stdarg.h>
  #include <map>
  #include <math.h>
  #include <typeinfo>
  #include <deque>
  #include <new>
  #include <bitset>
  #include <typeinfo>
  #include <memory>
  using namespace std;

  template<class _TT>
  struct DeletorBase 
  {
  	typedef _TT		   value_type;
  	typedef _TT*	   pointer;
  	typedef const _TT* const_pointer;

  	static constexpr bool ShouldThrow(void)
  		{ return true; }
  };

  
  template<class _TT>
  struct GuardedDeletor : DeletorBase<_TT>
  {
  	static constexpr bool ShouldThrow(void)
  		{ return !std::is_nothrow_destructible<_TT>::value; }

  	static inline void del(typename DeletorBase<_TT>::pointer p) 
  	{
  		if (ShouldThrow()) // Compiling time optimize
  		{
  			try
  			{
  				delete p;
  			}
  			catch (...)
  			{
  				operator delete(p);
  				throw;
  			}
  		}
  		else
  		{
  			delete p;
  		}
  	}
  };

  
  template< class _TT, class _DEL = GuardedDeletor< _TT > >
  class CMyHandle
  {
  public:
  	CMyHandle(_TT* ptr)
  		: m_ptr(ptr)
  		{}
  	~CMyHandle() noexcept(!_DEL::ShouldThrow())
  		{ _DEL::del(m_ptr); }

  private:
  	_TT* m_ptr;
  };

  class CMyClass
  {
  public:
  	CMyClass(int n = 0)
  		: m_thTest(new std::string)
  		{}

  	~CMyClass()
  		{}

      typedef CMyHandle< std::string > THCLI;
      THCLI m_thTest;
  };

  int
  main(int argc, char* argv[])
  {
  	return 0;
  }

  /////////////////////////////////// end of __test.cpp

  The compile command line is:

  g++-4.9 -Wall -fexceptions -fvisibility=hidden -march=athlon64 -O3 -w
  -std=c++11 --param inline-unit-growth=200 -msse2 -I/root/develop-
  lib/utilitis/include -I/root/develop-lib/crypto/include -I/root
  /develop-lib/DM/sqlite_cpp/include -I/root/develop-
  lib/DM/report/include -I/root/develop-lib/DM/odbc_cpp/include -I/root
  /develop-lib/DM/apidbc/include -c /root/tmp/__tests/__test/__test.cpp
  -o linux_x64/obj/__test.o

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-4.9/+bug/1830506/+subscriptions



More information about the foundations-bugs mailing list