On Wed, Sep 10, 2025 at 2:44 AM Alexander Monakov <amona...@ispras.ru> wrote: > > > > On Wed, 10 Sep 2025, Alexander Monakov wrote: > > > Sorry, I think this comment is more confusing than helpful. As mentioned > > before, > > decl_default_tls_model does not scan the attribute list, and may return a > > weaker > > model than the attribute. If there was no attribute, we can expect that > > recomputed model is never weaker. Can you put it in code like this, please: > > > > old_model = decl_tls_model (decl); > > if (CHECKING_P > > && !lookup_attribute ("tls_model", DECL_ATTRIBUTES (decl))) > > gcc_assert (new_model >= old_model); > > > > Thanks. > > Alexander > > > > > if (new_model >= decl_tls_model (decl)) > > > set_decl_tls_model (decl, new_model); > > > } > > Oh, actually the assert can go in the 'else' of the existing 'if': > > if (new_model >= decl_tls_model (decl)) > set_decl_tls_model (decl, new_model); > else > { > tree attrs = DECL_ATTRIBUTES (decl); > gcc_checking_assert (lookup_attribute ("tls_model", attrs)); > } >
Fixed in the v3 patch: https://patchwork.sourceware.org/project/gcc/list/?series=51897 -- H.J.