https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67632

--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #5)
> Not sure how it can be a libstdc++ issue, the copy constructor exists, the
> library can't force the front-end to instantiate it.
> 
> I'm travelling without access to proper computers, but as far as I can tell
> from coliru.stacked-crooked.com it links fine using clang++
> -stdlib=libstdc++ (with libstdc++ 5.2.0).

No, it doesn't for -O0. Higher -O values make the issue go away.

markus@x4 /tmp % clang++ -stdlib=libc++ -O0 -std=c++11 t.cpp x.cpp
markus@x4 /tmp % clang++ -Wl,--no-demangle -O0 -std=c++11 t.cpp x.cpp
/tmp/x-5ef538.o:x.cpp:function
_Z4copyRKSt13unordered_mapIiiSt4hashIiESt8equal_toIiESaISt4pairIKiiEEE: error:
undefined reference to
'_ZNSt13unordered_mapIiiSt4hashIiESt8equal_toIiESaISt4pairIKiiEEEC1ERKS8_'
clang-3.8: error: linker command failed with exit code 1 (use -v to see
invocation)
markus@x4 /tmp % icpc -Wl,--no-demangle -O0 -std=c++11 t.cpp x.cpp
/tmp/icpcMamJXz.o:x.cpp:function
_Z4copyRKSt13unordered_mapIiiSt4hashIiESt8equal_toIiESaISt4pairIKiiEEE: error:
undefined reference to
'_ZNSt13unordered_mapIiiSt4hashIiESt8equal_toIiESaISt4pairIKiiEEEC1ERKS8_'

Reply via email to