[Bug c++/77384] New: Assembler error - std::forward(decimal64) already declared
danielberger at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Aug 25 19:19:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77384
Bug ID: 77384
Summary: Assembler error - std::forward(decimal64) already
declared
Product: gcc
Version: 6.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: danielberger at gmail dot com
Target Milestone: ---
while compiling with no extra flags i get:
/tmp/cceuJGN0.s: Assembler messages:
1543 : Error: symbol `_ZSt7forwardIDdEOT_RNSt16remove_referenceIS0_E4typeE' is
already defined
1565 : Error: symbol `_ZNSt4pairIiDdEC1IiDdLb1EEEOT_OT0_' is already defined
Compilation failed
after some investigation it looks like the codegen is emitting this function
twice:
decimal64&& std::forward<decimal64>(std::remove_reference<decimal64>::type&)
perhaps it's the mix of explicit and implicit constructor or something.
minimal code - problem.cpp:
------------------------------
#include <decimal/decimal>
#include <utility>
using std::decimal::decimal64;
std::pair<int, decimal64> x = { 1, 1.5dd };
std::pair<int, decimal64> u = { 1, decimal64(1.5dd) };
------------------------------
live demonstration: https://godbolt.org/g/xgCliN
if needed i'm happy to upload more intermediate files
More information about the Gcc-bugs
mailing list