This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/77384] New: Assembler error - std::forward(decimal64) already declared
- From: "danielberger at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 25 Aug 2016 19:19:37 +0000
- Subject: [Bug c++/77384] New: Assembler error - std::forward(decimal64) already declared
- Auto-submitted: auto-generated
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