Opened 6 years ago
Closed 6 years ago
#12889 closed Bugs (fixed)
Invalid downcast warning in boost::lexical_cast when using UBSAN
| Reported by: | Owned by: | Antony Polukhin | |
|---|---|---|---|
| Milestone: | Boost 1.63.0 | Component: | lexical_cast | 
| Version: | Boost 1.58.0 | Severity: | Problem | 
| Keywords: | Cc: | 
Description
The attempt to lexical_cast an enum class into a std::string produces a warning with UBSAN. GCC version:
g++-6 (Ubuntu 6.2.0-3ubuntu11~16.04) 6.2.0 20160901
CXXFLAGS: -std=c++11 -fsanitize=undefined
Warning text for the attached test program:
(...)/boost/lexical_cast/detail/converter_lexical_streams.hpp:236:43: runtime error: downcast of address 0x7ffddfb77d38 which does not point to an object of type 'basic_unlockedbuf'
0x7ffddfb77d38: note: object is of type 'std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >'
 69 7f 00 00  e8 ca fb c9 69 7f 00 00  21 dc d8 00 00 00 00 00  21 dc d8 00 00 00 00 00  21 dc d8 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >'
      Attachments (1)
Change History (2)
by , 6 years ago
| Attachment: | lexical_cast.cxx added | 
|---|
comment:1 by , 6 years ago
| Milestone: | To Be Determined → Boost 1.63.0 | 
|---|---|
| Resolution: | → fixed | 
| Status: | new → closed | 
That issue has been fixed here in Boost 1.63
  Note:
 See   TracTickets
 for help on using tickets.
    

Minimal test program