https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98430
Bug ID: 98430 Summary: C++20 module binary bloat by introducing iostream silently. Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: unlvsur at live dot com Target Milestone: --- Created attachment 49838 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49838&action=edit Preprocessed file OH NO!!! PLEASE. NO IOSTREAM.!! We ban iostream and we do not use it. g++ -S hello.cc main.cc -Ofast -std=c++20 -s -fmodules-ts .LFE5373: .size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main .section .init_array,"aw" .align 8 .quad _GLOBAL__sub_I_main .globl _ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE .section .rodata .align 8 .type _ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE, @object .size _ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE, 120 _ZTVSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE: .quad 0 .quad _ZTISt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE .quad _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED1Ev .quad _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEED0Ev .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRb .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRl .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRt .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRj .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRm .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRx .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRy .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRf .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRd .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRe .quad _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE6do_getES3_S3_RSt8ios_baseRSt12_Ios_IostateRPv .globl _ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE .align 8 .type _ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE, @object .size _ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE, 96 _ZTVSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE: .quad 0 .quad _ZTISt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE .quad _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED1Ev .quad _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED0Ev .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewb .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewl .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewm .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewx .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewy .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewd .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewe .quad _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE6do_putES3_RSt8ios_basewPKv .hidden _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E .globl _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E .align 8 .type _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E, @object .size _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E, 80 _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E: .quad 8 .quad 0 .quad _ZTISt13basic_ostreamIwSt11char_traitsIwEE .quad 0 .quad 0 .quad -8 .quad -8 .quad _ZTISt13basic_ostreamIwSt11char_traitsIwEE .quad 0 .quad 0 .hidden _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E .globl _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E .align 8 .type _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E, @object .size _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E, 80 _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E: .quad 24 .quad 0 .quad _ZTISt13basic_istreamIwSt11char_traitsIwEE .quad 0 .quad 0 .quad -24 .quad -24 .quad _ZTISt13basic_istreamIwSt11char_traitsIwEE .quad 0 .quad 0 .globl _ZTTSt14basic_iostreamIwSt11char_traitsIwEE .align 8 .type _ZTTSt14basic_iostreamIwSt11char_traitsIwEE, @object .size _ZTTSt14basic_iostreamIwSt11char_traitsIwEE, 56 _ZTTSt14basic_iostreamIwSt11char_traitsIwEE: .quad _ZTVSt14basic_iostreamIwSt11char_traitsIwEE+24 .quad _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E+24 .quad _ZTCSt14basic_iostreamIwSt11char_traitsIwEE0_St13basic_istreamIwS1_E+64 .quad _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E+24 .quad _ZTCSt14basic_iostreamIwSt11char_traitsIwEE16_St13basic_ostreamIwS1_E+64 .quad _ZTVSt14basic_iostreamIwSt11char_traitsIwEE+104 .quad _ZTVSt14basic_iostreamIwSt11char_traitsIwEE+64 .globl _ZTVSt14basic_iostreamIwSt11char_traitsIwEE .align 8 .type _ZTVSt14basic_iostreamIwSt11char_traitsIwEE, @object .size _ZTVSt14basic_iostreamIwSt11char_traitsIwEE, 120 _ZTVSt14basic_iostreamIwSt11char_traitsIwEE: .quad 24 .quad 0 .quad _ZTISt14basic_iostreamIwSt11char_traitsIwEE .quad _ZNSt14basic_iostreamIwSt11char_traitsIwEED1Ev .quad _ZNSt14basic_iostreamIwSt11char_traitsIwEED0Ev .quad 8 .quad -16 .quad _ZTISt14basic_iostreamIwSt11char_traitsIwEE .quad _ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev .quad _ZThn16_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev .quad -24 .quad -24 .quad _ZTISt14basic_iostreamIwSt11char_traitsIwEE .quad _ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED1Ev .quad _ZTv0_n24_NSt14basic_iostreamIwSt11char_traitsIwEED0Ev .globl _ZTTSt13basic_istreamIwSt11char_traitsIwEE .align 8 .type _ZTTSt13basic_istreamIwSt11char_traitsIwEE, @object .size _ZTTSt13basic_istreamIwSt11char_traitsIwEE, 16 _ZTTSt13basic_istreamIwSt11char_traitsIwEE: .quad _ZTVSt13basic_istreamIwSt11char_traitsIwEE+24 .quad _ZTVSt13basic_istreamIwSt11char_traitsIwEE+64 .globl _ZTVSt13basic_istreamIwSt11char_traitsIwEE .align 8 .type _ZTVSt13basic_istreamIwSt11char_traitsIwEE, @object .size _ZTVSt13basic_istreamIwSt11char_traitsIwEE, 80 _ZTVSt13basic_istreamIwSt11char_traitsIwEE: .quad 16 .quad 0 .quad _ZTISt13basic_istreamIwSt11char_traitsIwEE .quad _ZNSt13basic_istreamIwSt11char_traitsIwEED1Ev .quad _ZNSt13basic_istreamIwSt11char_traitsIwEED0Ev .quad -16 .quad -16 .quad _ZTISt13basic_istreamIwSt11char_traitsIwEE .quad _ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED1Ev .quad _ZTv0_n24_NSt13basic_istreamIwSt11char_traitsIwEED0Ev .globl _ZTTSt13basic_ostreamIwSt11char_traitsIwEE .align 8 .type _ZTTSt13basic_ostreamIwSt11char_traitsIwEE, @object .size _ZTTSt13basic_ostreamIwSt11char_traitsIwEE, 16 _ZTTSt13basic_ostreamIwSt11char_traitsIwEE: .quad _ZTVSt13basic_ostreamIwSt11char_traitsIwEE+24 .quad _ZTVSt13basic_ostreamIwSt11char_traitsIwEE+64 .globl _ZTVSt13basic_ostreamIwSt11char_traitsIwEE .align 8 .type _ZTVSt13basic_ostreamIwSt11char_traitsIwEE, @object .size _ZTVSt13basic_ostreamIwSt11char_traitsIwEE, 80 _ZTVSt13basic_ostreamIwSt11char_traitsIwEE: .quad 8 .quad 0 .quad _ZTISt13basic_ostreamIwSt11char_traitsIwEE .quad _ZNSt13basic_ostreamIwSt11char_traitsIwEED1Ev .quad _ZNSt13basic_ostreamIwSt11char_traitsIwEED0Ev .quad -8 .quad -8 .quad _ZTISt13basic_ostreamIwSt11char_traitsIwEE .quad _ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED1Ev .quad _ZTv0_n24_NSt13basic_ostreamIwSt11char_traitsIwEED0Ev .globl _ZTVSt9basic_iosIwSt11char_traitsIwEE .align 8 .type _ZTVSt9basic_iosIwSt11char_traitsIwEE, @object .size _ZTVSt9basic_iosIwSt11char_traitsIwEE, 32 _ZTVSt9basic_iosIwSt11char_traitsIwEE: .quad 0 .quad _ZTISt9basic_iosIwSt11char_traitsIwEE .quad _ZNSt9basic_iosIwSt11char_traitsIwEED1Ev .quad _ZNSt9basic_iosIwSt11char_traitsIwEED0Ev .globl _ZTVSt15basic_streambufIwSt11char_traitsIwEE .align 8 .type _ZTVSt15basic_streambufIwSt11char_traitsIwEE, @object .size _ZTVSt15basic_streambufIwSt11char_traitsIwEE, 128 _ZTVSt15basic_streambufIwSt11char_traitsIwEE: .quad 0 .quad _ZTISt15basic_streambufIwSt11char_traitsIwEE .quad _ZNSt15basic_streambufIwSt11char_traitsIwEED1Ev .quad _ZNSt15basic_streambufIwSt11char_traitsIwEED0Ev .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE5imbueERKSt6locale .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE6setbufEPwl .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekoffElSt12_Ios_SeekdirSt13_Ios_Openmode .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE9showmanycEv .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsgetnEPwl .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE9underflowEv .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE5uflowEv .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE9pbackfailEj .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE6xsputnEPKwl .quad _ZNSt15basic_streambufIwSt11char_traitsIwEE8overflowEj .globl _ZTVNSt7__cxx118messagesIwEE .align 8 .type _ZTVNSt7__cxx118messagesIwEE, @object .size _ZTVNSt7__cxx118messagesIwEE, 56 _ZTVNSt7__cxx118messagesIwEE: .quad 0 .quad _ZTINSt7__cxx118messagesIwEE .quad _ZNSt7__cxx118messagesIwED1Ev .quad _ZNSt7__cxx118messagesIwED0Ev .quad _ZNKSt7__cxx118messagesIwE7do_openERKNS_12basic_stringIcSt11char_traitsIcESaIcEEERKSt6locale .quad _ZNKSt7__cxx118messagesIwE6do_getEiiiRKNS_12basic_stringIwSt11char_traitsIwESaIwEEE .quad _ZNKSt7__cxx118messagesIwE8do_closeEi .globl _ZTVNSt7__cxx118numpunctIwEE .align 8 .type _ZTVNSt7__cxx118numpunctIwEE, @object .size _ZTVNSt7__cxx118numpunctIwEE, 72 _ZTVNSt7__cxx118numpunctIwEE: .quad 0 .quad _ZTINSt7__cxx118numpunctIwEE .quad _ZNSt7__cxx118numpunctIwED1Ev .quad _ZNSt7__cxx118numpunctIwED0Ev .quad _ZNKSt7__cxx118numpunctIwE16do_decimal_pointEv .quad _ZNKSt7__cxx118numpunctIwE16do_thousands_sepEv .quad _ZNKSt7__cxx118numpunctIwE11do_groupingEv .quad _ZNKSt7__cxx118numpunctIwE11do_truenameEv .quad _ZNKSt7__cxx118numpunctIwE12do_falsenameEv .globl _ZTVNSt7__cxx118numpunctIcEE .align 8 .type _ZTVNSt7__cxx118numpunctIcEE, @object .size _ZTVNSt7__cxx118numpunctIcEE, 72 _ZTVNSt7__cxx118numpunctIcEE: .quad 0 .quad _ZTINSt7__cxx118numpunctIcEE .quad _ZNSt7__cxx118numpunctIcED1Ev .quad _ZNSt7__cxx118numpunctIcED0Ev .quad _ZNKSt7__cxx118numpunctIcE16do_decimal_pointEv .quad _ZNKSt7__cxx118numpunctIcE16do_thousands_sepEv .quad _ZNKSt7__cxx118numpunctIcE11do_groupingEv .quad _ZNKSt7__cxx118numpunctIcE11do_truenameEv .quad _ZNKSt7__cxx118numpunctIcE12do_falsenameEv .weak _ZTSN7fast_io14error_reporterE .section .rodata._ZTSN7fast_io14error_reporterE,"aG",@progbits,_ZTSN7fast_io14error_reporterE,comdat .align 16