error: 'basic_string<_CharT, _Traits, _Allocator>' is missing exception specification
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libc++ (Debian) |
Fix Released
|
Unknown
|
|||
libc++ (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Xenial |
Fix Released
|
High
|
Unassigned |
Bug Description
This is mirroring Debian bug #808086 https:/
Compiling any source file that includes <string> with clang 3.8 and -std=c++11 -stdlib=libc++ results in a compile error.
While this is a minor bug in Debian (as it doesn't ship 3.8 yet), xenial does, and that's a major problem as it makes libc++ useless.
clang: warning: argument unused during compilation: '-stdlib=libc++'
In file included from test.cpp:1:
In file included from /usr/include/
In file included from /usr/include/
In file included from /usr/include/
/usr/include/
basic_string<
/usr/include/
__attribute__ ((__visibility_
1 error generated.
--
Update (30 Aug 2017): as per https:/
[Impact]
This bug makes it impossible to compile any C++11 source file that includes <string> with clang 3.8 using libc++. Any non-trivial C++11 codebase is affected, making the whole libc++ package useless.
[Test Case]
See above. Create a C++ file that simply contains #include <string> and compile it with clang++ -std=c++11 -stdlib=libc++ file.cpp.
[Regression Potential]
The current <string> header simply does not work with clang-3.8 under any condition, so there is no regression potential.
The regression potential for GCC is also extremely limited: no package whatsoever uses GCC in combination with libc++, and the fact that GCC 5.4 -- currently in Xenial -- does not detect the error that Clang detects is just showing that GCC is bugged in this regard.
[Other Info]
The patch/workaround fixes the problem. See also the discussion at the linked Debian bug report as well as https:/
affects: | libc++ (Ubuntu) → ubuntu |
affects: | ubuntu → libc++ (Ubuntu) |
Changed in libc++ (Ubuntu): | |
importance: | Undecided → High |
Changed in libc++ (Debian): | |
status: | Unknown → Fix Released |
Changed in libc++ (Ubuntu Xenial): | |
importance: | Undecided → High |
Changed in libc++ (Ubuntu Xenial): | |
status: | New → In Progress |
Changed in libc++ (Ubuntu): | |
status: | Confirmed → Fix Released |
tags: |
added: verification-done-xenial removed: verification-needed verification-needed-xenial |
Status changed to 'Confirmed' because the bug affects multiple users.