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

            Bug ID: 58420
           Summary: internal compiler error: in ubsan_type_descriptor, at
                    ubsan.c:280
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jan.sm...@alcatel-lucent.com
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org

stl.46/bits/locale_facets.h:1585:46: internal compiler error: in
ubsan_type_descriptor, at ubsan.c:280

Line 1585 is '_CharT  _M_atoms_out[__num_base::_S_oend];'


  template<typename _CharT>
    struct __numpunct_cache : public locale::facet
    {
      const char*                       _M_grouping;
      size_t                            _M_grouping_size;
      bool                              _M_use_grouping;
      const _CharT*                     _M_truename;
      size_t                            _M_truename_size;
      const _CharT*                     _M_falsename;
      size_t                            _M_falsename_size;
      _CharT                            _M_decimal_point;
      _CharT                            _M_thousands_sep;

      // A list of valid numeric literals for output: in the standard
      // "C" locale, this is "-+xX0123456789abcdef0123456789ABCDEF".
      // This array contains the chars after having been passed
      // through the current locale's ctype<_CharT>.widen().
      _CharT                            _M_atoms_out[__num_base::_S_oend];

      // A list of valid numeric literals for input: in the standard
      // "C" locale, this is "-+xX0123456789abcdefABCDEF"
      // This array contains the chars after having been passed
      // through the current locale's ctype<_CharT>.widen().
      _CharT                            _M_atoms_in[__num_base::_S_iend];

      bool                              _M_allocated;

      __numpunct_cache(size_t __refs = 0)
      : facet(__refs), _M_grouping(0), _M_grouping_size(0),
        _M_use_grouping(false),
        _M_truename(0), _M_truename_size(0), _M_falsename(0),
        _M_falsename_size(0), _M_decimal_point(_CharT()),
        _M_thousands_sep(_CharT()), _M_allocated(false)
        { }

      ~__numpunct_cache();

      void
      _M_cache(const locale& __loc);

    private:
      __numpunct_cache&
      operator=(const __numpunct_cache&);

      explicit
      __numpunct_cache(const __numpunct_cache&);
    };

Reply via email to