[PATCH] c++: Distinguish btw. alignof and __alignof__ in cp_tree_equal [PR97273]

Jakub Jelinek jakub@redhat.com
Fri Oct 9 08:48:47 GMT 2020


On Tue, Oct 06, 2020 at 03:40:52PM -0400, Jason Merrill via Gcc-patches wrote:
> On 10/4/20 11:28 PM, Patrick Palka wrote:
> > cp_tree_equal currently considers alignof the same as __alignof__, but
> > these operators are semantically different ever since r8-7957.  In the
> > testcase below, this causes the second static_assert to fail on targets
> > where alignof(double) != __alignof__(double) because the specialization
> > cache (which uses cp_tree_equal as the equality predicate) conflates the
> > two dependent specializations integral_constant<__alignof__(T)> and
> > integral_constant<alignof(T)>.
> > 
> > This patch makes cp_tree_equal distinguish between these two operators
> > by inspecting the ALIGNOF_EXPR_STD_P flag.
> > 
> > Bootstrapped and regtested on x86_64-pc-linux-gnu, and also verified
> > that we now correctly compile the  PR97273 testcase, does this look OK
> > for trunk and the release branches?
> 
> OK.

Shouldn't we then mangle alignof and __alignof__ differently though?

	Jakub



More information about the Gcc-patches mailing list