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

2022-02-28 Thread danielberger at gmail dot com via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77384

--- Comment #3 from danielberger at gmail dot com ---
looks like this is now an ICE on trunk:

> :9:63: error: Two symbols with same comdat_group are not linked by 
> the same_comdat_group list.
> 9 | int main(void){return 0;/*stub provided by Compiler Explorer*/}
>   |   ^
> _ZSt7forwardIDdEOT_RNSt16remove_referenceIS0_E4typeE/765 (constexpr _Tp&& 
> std::forward(typename remove_reference<_Tp>::type&) [with _Tp = 
> decimal::decimal64]) @0x7fa30f39b000
>   Type: function definition analyzed
>   Visibility: semantic_interposition no_reorder public weak comdat 
> comdat_group:_ZSt7forwardIDdEOT_RNSt16remove_referenceIS0_E4typeE one_only 
> visibility_specified
>   previous sharing asm name: 761
>   References: __gxx_personality_v0/768 (addr) 
>   Referring: 
>   Function flags: body
>   Called by: _ZNSt4pairIiDdEC2IiDdLb1EEEOT_OT0_/763 
>   Calls: 
> _ZSt7forwardIDdEOT_RNSt16remove_referenceIS0_E4typeE/761 (constexpr _Tp&& 
> std::forward(typename remove_reference<_Tp>::type&) [with _Tp = 
> ]) @0x7fa30f087cc0
>   Type: function definition analyzed
>   Visibility: semantic_interposition no_reorder public weak comdat 
> comdat_group:_ZSt7forwardIDdEOT_RNSt16remove_referenceIS0_E4typeE one_only 
> visibility_specified
>   next sharing asm name: 765
>   References: __gxx_personality_v0/768 (addr) 
>   Referring: 
>   Function flags: body
>   Called by: _ZNSt4pairIiDdEC1IiDdLb1EEEOT_OT0_/754 
>   Calls: 
> :9:63: internal compiler error: symtab_node::verify failed
> 0x217c229 internal_error(char const*, ...)
>   ???:0
> 0xbdf772 symtab_node::verify_symtab_nodes()
>   ???:0
> 0xbfbcaf symbol_table::finalize_compilation_unit()
>   ???:0
> Please submit a full bug report, with preprocessed source (by using 
> -freport-bug).
> Please include the complete backtrace with any bug report.
> See <https://gcc.gnu.org/bugs/> for instructions.
> Compiler returned: 1

https://godbolt.org/z/Md56cT9e4

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

2019-01-07 Thread danielberger at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77384

--- Comment #1 from danielberger at gmail dot com ---
Anyone have a chance to take a look at this? It still reproduces in 8.2 and
trunk. Any more information I can provide?

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

2016-08-25 Thread danielberger at gmail dot com
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(std::remove_reference::type&)

perhaps it's the mix of explicit and implicit constructor or something.

minimal code - problem.cpp:
--
#include 
#include 
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

[Bug c++/76911] internal compiler segfault on illegal implicit cast to decimal64

2016-08-15 Thread danielberger at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76911

--- Comment #2 from danielberger at gmail dot com ---
Created attachment 39447
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39447=edit
preprocessed source

[Bug c++/76911] internal compiler segfault on illegal implicit cast to decimal64

2016-08-15 Thread danielberger at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76911

--- Comment #1 from danielberger at gmail dot com ---
Created attachment 39446
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39446=edit
stderr from compilation

[Bug c++/76911] New: internal compiler segfault on illegal implicit cast to decimal64

2016-08-15 Thread danielberger at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76911

Bug ID: 76911
   Summary: internal compiler segfault on illegal implicit cast to
decimal64
   Product: gcc
   Version: 6.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: danielberger at gmail dot com
  Target Milestone: ---

Created attachment 39445
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39445=edit
minimal source

minimal code - crash.cpp:

#include 
double get_double();
std::decimal::decimal64 test() {
  return get_double();  // invalid conversion
}

gcc 6.1.0
gcc -v -save-temps crash.cpp

this triggers "internal compiler error: Segmentation fault"

previous versions of such as gcc 5.3 give a compilation error:
10 : error: converting to 'std::decimal::decimal64' from initializer list would
use explicit constructor 'std::decimal::decimal64::decimal64(double)'