This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/77384] New: Assembler error - std::forward(decimal64) already declared


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]