Why export external(C) generate mangled names?

Suliman evermind at live.ru
Fri Oct 25 10:31:15 UTC 2019


I thought that export extern(C) is needed for C compatibility. 
But When I am compiling follow code

export extern(C)
{
     void foo()
     {
     }
}

I am getting section that have mangled names:

� foo.d �  �7nO �  �CV �,  
FLAT_TEXTCODE_DATADATACONST_BSSBSS �	 �     �	 i    
 �	 i
    �	 i    	 �  � _foo �
   �
  � _foo  �
 FMBFMFME �	 �    
 �	 �   
 �	 �
 � __D3foo12__ModuleInfoZ      �
           
� �           foo  �
           � �  �

Why is __D3foo12__ModuleInfoZ added to obj file?


More information about the Digitalmars-d mailing list