# Introduction There are some issues related reported, or originally found and forwarded by author of this project. Some issues might block the project in some sense. To review them conveniently, reported issues are collect in this document. Unless otherwise specified, notations are same to those in [StandardUsing](StandardUsing.en-US.md). # List of reported issues Issues not rejected or withdrawn are collected and listed here (revised b840\[2018-10-07]). ## Specifications Some issues are related to the to language or enviornment specifications. The entries may duplicate with above. ### ISO/IEC 14882 (ISO/IEC JTC1 SC22/WG21 issue list) * [CWG 1949](http://wg21.cmeerw.net/cwg/issue1949): “sequenced after” instead of “sequenced before” (resolved at [N4567](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4567.pdf), see [N4566](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4566.html)) * Issue delegated in [GitHub issue 61](https://github.com/cplusplus/draft/issues/61). * [LWG 2240](http://wg21.cmeerw.net/lwg/issue2240): Probable misuse of term "function scope" in [\[thread.condition\]](https://eel.is/c++draft/thread.condition) (resolved) * Original thread posted in [std-discussion](https://groups.google.com/a/isocpp.org/forum/#!topic/std-discussion/JpQVT-pwP9E). * Issue delegated in [GitHub issue 57](https://github.com/cplusplus/draft/issues/57). ## Implementations of standards or specifications Some issues are related to the to implementations of language or enviornment specifications. ### GNU C++ ([Bugzilla](https://gcc.gnu.org/bugzilla/)) * [PR 53872](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53872): \[C++11] ADL bug in `std::thread` (RESOLVED FIXED 4.7.2) * [PR 53873](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53873): \[C++11] strange error message for template overloading (RESOLVED DUPLICATE of [bug 53862](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53862)) * [PR 53862](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53862): \[4.6/4.7 regression] \[C++11] sorry, unimplemented: use of 'type_pack_expansion' in template (RESOLVED FIXED 4.7.1) * [PR 54216](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54216): Missing diagnostic for ill-formed anonymous enum declarations (RESOLVED FIXED 4.9.0) * [PR 55053](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55053): `std::is_explicitly_convertible` should be removed (RESOLVED WORKSFORME 4.8.0) * [PR 56699](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56699): \[4.8/4.9 regression] Failed for sizeof (non-static member) in lambda expression (RESOLVED FIXED mainline/4.8.1) * [PR 57183](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57183): \[C++11] `auto` and -Wunused-variable (RESOLVED FIXED 4.8.1) * [PR 57444](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57444): \[4.8/4.9 Regression] ICE in instantiate_type for invalid use of member with *using-declaration* (RESOLVED DUPLICATE of [bug 58457](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58457)) * [PR 58457](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58457): \[4.8/4.9 Regression] ICE when placement `new` operator is used with using keyword and custom constructor (RESOLVED FIXED 4.8.2/4.9.0) * [PR 58395](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58395): Undefined behavior vs. exception (RESOLVED WONTFIX) * [PR 59682](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59682): Invalid syntax accepted: new-placement without *expression-list* (RESOLVED FIXED 6.0) * [PR 59931](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59931): Wrong wording of diagnostic about imaginary "member function type" * [PR 60709](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60709): \[C++11]ICE when using a *braced-init-list* as function argument to initialize a reference to array (RESOLVED FIXED 4.8.3) * [PR 61019](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61019): ICE: incomplete type of class template as *pseudo-destructor-name* (RESOLVED FIXED 6.0) * [PR 63400](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63400): \[C++11]precision of `std::chrono::high_resolution_clock` (UNCONFIRMED) * [PR 65343](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65343): unexpected exception thrown during destruction of static object in debug mode * Since some version of Windows 10, the crash dialog would not show, made it less annoying. * [PR 65748](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65748): \[C++11]\[C++14]Invalid copy elision on operand of *throw-exception* (RESOLVED DUPLICATE of [bug 57533](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57533)) * [PR 57533](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57533): When throwing local variable, it's being move-constructed even if not going out of scope. (NEW) * This misfeature is carefully avoided in YSLib source. * [PR 65890](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65890): \[C++03]`sizeof(qualified-id)` accepted when the operand denotes a non-static member (RESOLVED INVALID) * This does not effect YSLib since C++11 is the baseline. * [PR 67238](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67238): \[C++11]\[C++14]cc1plus crash for nested `decltype` expression in parameter pack in trailing return type when '-g' enabled (RESOLVED FIXED 6.0) * This was worked arounded in YSLib source, before 6.0 is actually depended on. * [PR 67795](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67795): Wrong code generated for conditional expression with cast (WAITING) * Given that it is not confirmed fixed, this may still block some code. * [PR 70480](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70480): Reduce RTTI code bloat for specified types (NEW) * For the DS platform, YSLib uses `ystdex::type_id` instead `typeid` to work around. * [YSLib issue 30](https://bitbucket.org/FrankHB/yslib/issues/30/b699-mingw32-some-error-constants) * [PR 71444](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71444): Error constants for MinGW-w64 (RESOLVED FIXED 5.5 6.4 7.1) * This was worked around in YSLib source and fixed since G++ 7.1. * [PR 86734](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86734): \[[DR 2188](https://wg21.cmeerw.net/lwg/issue2188)] `reverse_iterator::operator->` does not support overloaded `operator&` (RESOLVED FIXED 7.4 8.3) * See upstream [LWG 2188](https://wg21.cmeerw.net/lwg/issue2188). * This is conditionally avoided by [the YBase replacement](StandardUsing.en-US.md) `ystdex::reverse_iterator`. * [PR 90966](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90966): \[9/10 Regression] ICE in `tsubst_copy`, at `cp/pt.c`:16155 (RESOLVED FIXED 9.3 and 10) * [PR 91127](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91127): Incorrect checking of nonnull attribute with argument to a constructor of class with a virtual base (NEW) * [PR 91480](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91480): Nonconforming definitions of standard library feature-test macros (NEW) * [PR 91531](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91531): `_Rb_tree`'s copy assignment should respect to POCCA regardless of `is_always_equal` (NEW) * [PR 91541](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91541): \[C++17] Exception specification of `operator=` of node-based containers may be broken (RESOLVED WONTFIX) * Actually it is then fixed. * [PR 91620](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91620): `std::[forward_]list::remove_if/unique` should respect to [DR 526](https://wg21.cmeerw.net/lwg/issue526) (RESOLVED FIXED 11.0) * [PR 93470](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93470): \[C++2a] \[9 Regression] \[C++2a] `std::reference_wrapper` to function type is broken with Clang (RESOLVED FIXED 9.3) * [PR 94602](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94602): wrong semantic check to prvalue as `decltype` operand (UNCONFIRMED) * [PR 97362](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97362): `__deref` in `` in debug mode clashes with internal macro in Windows system header (RESOLVED FIXED 8.5 9.4 10.3 11.0) * [PR 100472](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100472): \[C++17] Wrong template non-type argument handling on function reference to `noexcept` functions (RESOLVED DUPLICATE of [bug 97420](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97420)) * [PR 100682](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100682): Outdated manual about the debug mode using (RESOLVED FIXED 11.3 12.0) * [PR 104191](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104191): Incorrect `max_size()` for node-based containers (NEW) * [PR 107189](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107189): Inconsistent range insertion implementations in `std::_Rb_tree` in `` (RESOLVED FIXED 13.0) * [PR 108771](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108771): Incorrect `noexcept` for merging in `` (UNCONFIRMED) ### LLVM/Clang ([Bugzilla](https://llvm.org/bugs/) and [GitHub issues](https://github.com/llvm/llvm-project/issues)) * [PR 25306](https://llvm.org/bugs/show_bug.cgi?id=25306): `__attribute__((returns_nonnull))` does not work for `std::add_pointer_t` (NEW) * [PR 27504](https://llvm.org/bugs/show_bug.cgi?id=27504): Inherited constructor with dependent base class introduced by a *typedef-name* may not work (NEW) * [PR 27443](https://llvm.org/bugs/show_bug.cgi?id=27443): \[CWG 734] Nonconforming aliasing of block scope objects (RESOLVED DUPLICATE of [bug 18538](https://llvm.org/bugs/show_bug.cgi?id=18538)) * [PR 18538](https://llvm.org/bugs/show_bug.cgi?id=18538): non-conforming optimization `-fmerge-all-constants` is enabled by default * Note they are not identical. PR 27443 is for ISO C++ and PR 18538 is for ISO C. * [PR 43275](https://bugs.llvm.org/show_bug.cgi?id=43275): Pure attribute and C++ exceptions (NEW) * [PR 45542](https://bugs.llvm.org/show_bug.cgi?id=45542): wrong semantic check to prvalue as `decltype` operand (NEW) * [issue 60622](https://github.com/llvm/llvm-project/issues/60622) (NEW) ### Microsoft Visual C++ New issues are now reported to [Microsoft Visual Studio Developer Community](https://developercommunity.visualstudio.com/). As [Microsoft Connect](https://connect.microsoft.com/) is down now, any status would not be updated. Note some posts have been inaccessible even before the service stopped. * [Microsoft Connect issue 1641428](https://connect.microsoft.com/VisualStudio/feedback/details/1641428): Wrong Win32 error to `errno` mapping (ACTIVE) * YSLib code does not rely on Universal source, instead implements the functionality spearatedly, so it has no effect. * This seems to be fixed before Microsoft Connect closed. * [YSLib issue 33](https://bitbucket.org/FrankHB/yslib/issues/33) * [Microsoft Connect issue 2913382](https://connect.microsoft.com/VisualStudio/feedback/details/2913382): Parameter parsing bug (ACTIVE) * [problem 431539](https://developercommunity.visualstudio.com/content/problem/431539/vc-cannot-parse-function-pointer-parameter-with-de.html): VC++ cannot parse function pointer parameter with default argument '{}' (Under Consideration) * [YSLib issue 34](https://bitbucket.org/FrankHB/yslib/issues/34): \[Win32] std::unique_ptr::operator-> not conforming in Microsoft VC++ 2015 * [Microsoft Connect issue 2918170](https://connect.microsoft.com/VisualStudio/feedback/details/2918170): `std::unique_ptr::operator->` not conforming (FIXED accroding to [here](https://blogs.msdn.microsoft.com/vcblog/2016/10/11/c1417-features-and-stl-fixes-in-vs-15-preview-5/)) * [problem 417142](https://developercommunity.visualstudio.com/content/problem/417142/lwg-2070p0674r1-stdallocate-shared-is-not-conformi.html): \[LWG 2070]\[P0674R1] `std::allocate_shared` is not conforming (Under Investigation) * [YSLib issue 35](https://bitbucket.org/FrankHB/yslib/issues/35): \[Win32] Microsoft VC++ 2017 failed to evaluate the dependent noexcept expression inside noexcept-specifier * [problem 431598](https://developercommunity.visualstudio.com/content/problem/431598/vc-fails-to-compile-the-noexcept-expression-inside.html): VC++ fails to compile the noexcept expression inside noexcept-specifier with a template-parameter instantiated from an explicit destruct call (Closed - Fixed)(Fixed In: Visual Studio 2019 version 16.1)(Fixed In: Visual Studio 2019 version 16.1 Preview 1) * [YSLib issue 36](https://bitbucket.org/FrankHB/yslib/issues/36): \[Win32] Microsoft VC++ 2017 failed to initialize with string arrays with a constexpr u8 string literal * [problem 431628](https://developercommunity.visualstudio.com/content/problem/431628/vc-fails-to-initialize-with-string-arrays-with-a-c.html): VC++ fails to initialize with string arrays with a constexpr u8 string literal (Closed - Fixed)(Fixed In: Visual Studio 2019 version 16.0)(Fixed In: Visual Studio 2019 version 16.0 Preview 5) * [YSLib issue 37](https://bitbucket.org/FrankHB/yslib/issues/37): \[Win32] Microsoft VC++ 2017 internal compiler error when building SHBuild * [problem 431665](https://developercommunity.visualstudio.com/content/problem/431665/vc-2017-internal-error-for-overloaded-qualified-fu.html): VC++ 2017 internal error for overloaded qualified function template function call in the function default argument (Closed - Fixed)(Fixed In: Visual Studio 2019 version 16.1)(Fixed In: Visual Studio 2019 version 16.0) * [YSLib issue 38](https://bitbucket.org/FrankHB/yslib/issues/38): \[Win32] Microsoft VC++ 2017 failed to select expected std::swap specialization * [problem 431904](https://developercommunity.visualstudio.com/content/problem/431904/vc-2017-stdswap-is-not-conforming.html) (Closed - Fixed)(Fixed In: Visual Studio 2019 version 16.1)(Fixed In: Visual Studio 2019 version 16.1 Preview 2)(Fixed In: Visual Studio 2019 version 16.1 Preview 1) * [YSLib issue 39](https://bitbucket.org/FrankHB/yslib/issues/39): \[Win32] Microsoft VC++ 2017 rejects dependent noexcept-specifier in template partial specializations * [problem 441268](https://developercommunity.visualstudio.com/t/vc-2017-rejects-dependent-noexcept-specifier-in-te/441268) (Closed - Not a bug) * According to [this reply](https://developercommunity.visualstudio.com/t/vc-2017-rejects-dependent-noexcept-specifier-in-te/441268#T-N873330), it is a defect of ISO C++, see [CWG 2355](https://wg21.cmeerw.net/cwg/issue2355). However, the wrong compilation error C2057 has been fixed. * [microsoft/STL issue 2093](https://github.com/microsoft/STL/issues/2093): `fiopen` handling of non-standard flags (Open) * [microsoft/STL issue 2609](https://github.com/microsoft/STL/issues/2093): ``: Conformance issues on `monotonic_buffer_resource::do_allocate` (Open) ## Other projects As complement, some issues are related to other tools used by the project or referenced in documentation of this project, which may loosely concern with issues listed above. ### DrMemory * [issue 1826](https://github.com/DynamoRIO/drmemory/issues/1826): Crash in Win10 TH2 (Closed [FIXED](https://github.com/DynamoRIO/drmemory/commit/446007ec2c76fbab9220850b38aac48c538eee18)) ### devkitPro #### libfat * [pull request 1](https://github.com/devkitPro/libfat/pull/1): Removed redundant check ([Merged](https://github.com/devkitPro/libfat/commit/1e1e9a23ddc4fce1cf5f956fc94cffc9d3569c20)) * [issue 2](https://github.com/devkitPro/libfat/issues/2): Wrong root sectors count determined for FAT12 and FAT16? (Open) * [issue 3](https://github.com/devkitPro/libfat/issues/3): Redundant function calls (Open) * [issue 4](https://github.com/devkitPro/libfat/issues/4): `_FAT_directory_entryFromPosition` issues (Open) * [issue 5](https://github.com/devkitPro/libfat/issues/5): Redundant call of `_FAT_directory_getRootEntry` for "`/`" (Open) * [issue 6](https://github.com/devkitPro/libfat/issues/6): `ENOTDIR` vs `ENOENT` for invalid path prefix (Open) * [issue 7](https://github.com/devkitPro/libfat/issues/7): Pathname with or without trailing slashes for directories (Open) * [issue 10](https://github.com/devkitPro/libfat/issues/10): Setting `errno` when removing a non-empty directory (Open) * [issue 19](https://github.com/devkitPro/libfat/issues/19): Uninitialized `timespec` fields in `stat` (Open) #### libnds * [issue 3](https://github.com/devkitPro/libnds/issues/3): Compiler warnings (Closed) * [issue 4](https://github.com/devkitPro/libnds/issues/4): About `std::chrono` clocks (Closed) * [pull request 30](https://github.com/devkitPro/libnds/pull/30): Removed redundant code. ([Merged](https://github.com/devkitPro/libnds/commit/aaf79c49fa8a8dfb18b8fb53da72dd0fc7f622a5)) * [pull request 33](https://github.com/devkitPro/libnds/pull/33): Fixed redundant qualifier ([Merged](https://github.com/devkitPro/libnds/commit/a76bff0e943ee2f516bda5f1c7bc6d81d2af44a7)) #### newlib * [issue 5](https://github.com/devkitPro/newlib/issues/5): Nonconforming return type of `ftell` (Closed FIXED) ### Other language implementations As [Mercurial support of BitBucket has ended](https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket) now, any status of issues of Mercurial repositories would not be updated, and the links are not accessible. * [klisp issue 12](https://bitbucket.org/AndresNavarro/klisp/issues/12): A problem of proper tail call (NEW) * [Gauche issue 805](https://github.com/shirok/Gauche/issues/805): `=` can be not transitive (Closed [FIXED](https://github.com/shirok/Gauche/commit/1701481673cba786d30e0b322411c0034fdcbec5)) * [Chez Scheme issue 606](https://github.com/cisco/ChezScheme/issues/606): `=` can be not transitive (Closed [FIXED](https://github.com/ashinn/chibi-scheme/commit/82d61b3d8e50bacc266b450e21127663f3c39de5)) * [Chibi Scheme issue 812](https://github.com/ashinn/chibi-scheme/issues/812): `=` can be not transitive (Closed) * [makotom/glibc-wsl issue 2](https://github.com/makotom/glibc-wsl/issues/2): Please update (Closed [FIXED](https://github.com/makotom/glibc-wsl/releases/tag/2.35-2%4028-14f31b0)) * [archlinuxcn/repo issue 2678](https://github.com/archlinuxcn/repo/issues/2678): glibc-linux4 is outdated (Closed [FIXED](https://github.com/archlinuxcn/repo/commit/abc940cde81372a433040da704c2ede5e3b90da8)) # Resolved implementation issues Some issues were tagged BLOCKED status previously. Issues known resolved and confirmed to work would be put in this chapter.