Richard Biener changed bug 1187864
What Removed Added
CC   jh@suse.com

Comment # 2 on bug 1187864 from
(In reply to Aaron Puchert from comment #1)
> (In reply to Fabian Vogt from comment #0)
> > Using the "-fno-semantic-interposition" compiler option, interprocedural
> > optimization can be enabled for exported symbols [...]
> The way I see it, -fno-semantic-interposition is justified by the "one
> definition rule" in both C and C++. Having different functions with the same
> (qualified) name (and signature for C++) is not allowed in a program. There
> is still a non-standard "back door": __attribute__((weak)). So if necessary
> it's still possible to define overridable functions, but other libraries
> can't just override anything they want. It's also kind of on-by-default in
> Clang (not literally, but Clang does IPO on default visibility functions)
> and on other platforms, so there is hopefully not a lot of software out
> there that relies on semantic interposition.

I think for GCC the ODR trumps -fsemantic-interposition though GCC applies ODR
only to C++.  Honza, please correct me if I'm wrong here.  So I'm not sure
whether -fno-semantic-interposition on its own has any measurable effect on a
C++ code base.

For C there's no ODR so things are more complicated.


You are receiving this mail because: