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++/70018] [4.9/5/6/7 Regression] Possible issue around IPO and C++ comdats discovered as pure/const


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

--- Comment #15 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Author: hubicka
Date: Sun Apr 17 16:04:05 2016
New Revision: 235081

URL: https://gcc.gnu.org/viewcvs?rev=235081&root=gcc&view=rev
Log:

        PR ipa/70018
        * cgraph.h (cgraph_node::set_const_flag,
        cgraph_node::set_pure_flag): Update prototype to return bool;
        update comment.
        * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
        of interposable symbol are interposable, too.
        (cgraph_set_const_flag_1): Rename to ...
        (set_const_flag_1): ... this one; change to self recursive function
        instead of call_for_symbol_thunks_and_aliases. Handle correctly
        clearnig the flag in all variants and also virtual thunks of const
        functions are pure; track if any change was done.
        (cgraph_node::set_const_flag): Update.
        (struct set_pure_flag_info): New struct.
        (cgraph_set_pure_flag_1): Rename to ...
        (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
        rather than pointer encoded flags; track if any changes was done;
        handle correctly clearning flag and setting flag of aliases already
        declared const.
        (cgraph_node::set_pure_flag): Update.
        (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cgraph.c
    trunk/gcc/cgraph.h

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