https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117813

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
https://gcc.gnu.org/g:6d5a6a26e28d15ac05f59ee4d3c3d7d4d42acac3                  

commit r14-11743-g6d5a6a26e28d15ac05f59ee4d3c3d7d4d42acac3                      
Author: Jakub Jelinek <ja...@redhat.com>                                        
Date:   Wed May 15 18:50:11 2024 +0200                                          

    c++: Optimize in maybe_clone_body aliases even when not at_eof [PR113208]   

    This patch reworks the cdtor alias optimization, such that we can create    
    aliases even when maybe_clone_body is called not at at_eof time, without
trying                                                                          
    to repeat it in maybe_optimize_cdtor.                                       

    2024-05-15  Jakub Jelinek  <ja...@redhat.com>                               
                Jason Merrill  <ja...@redhat.com>                               

            PR lto/113208                                                       
            * cp-tree.h (maybe_optimize_cdtor): Remove.                         
            * decl2.cc (tentative_decl_linkage): Call maybe_make_one_only       
            for implicit instantiations of maybe in charge ctors/dtors          
            declared inline.                                                    
            (import_export_decl): Don't call maybe_optimize_cdtor.              
            (c_parse_final_cleanups): Formatting fixes.                         
            * optimize.cc (can_alias_cdtor): Adjust condition, for              
            HAVE_COMDAT_GROUP && DECL_ONE_ONLY && DECL_WEAK return true even    
            if not DECL_INTERFACE_KNOWN.                                        
            (maybe_clone_body): Don't clear DECL_SAVED_TREE, instead set it     
            to void_node.                                                       
            (maybe_clone_body): Remove.                                         
            * decl.cc (cxx_comdat_group): For DECL_CLONED_FUNCTION_P            
            functions if SUPPORTS_ONE_ONLY return DECL_COMDAT_GROUP if already  
            set.                                                                

            * g++.dg/abi/comdat3.C: New test.                                   
            * g++.dg/abi/comdat4.C: New test.                                   

    (cherry picked from commit 6ad7ca1bb905736c0f57688e93e9e77cbc71a325)

Reply via email to