--> lists.llvm.org

---------- Forwarded message ----------
From: Ettore Speziale <speziale.ett...@gmail.com>
Date: 26 August 2015 at 14:35
Subject: Re: [PATCH] __attribute__((enable_if)) and non-overloaded member
functions
To: Nick Lewycky <nlewy...@google.com>
Cc: llvm cfe <cfe-comm...@cs.uiuc.edu>


Hello,

> Sorry about the extreme delay. This patch slipped through the cracks, and
I only noticed it again when searching my email for enable_if. Committed in
r245985! In the future, please feel free to continue pinging weekly!

NP, thank you for committing the patch.

Unfortunately it contains a little error in the case of no candidate has
been found. For instance consider the following test case:

struct Incomplete;

struct X {
void hidden_by_argument_conversion(Incomplete n, int m = 0)
__attribute((enable_if(m == 10, "chosen when 'm' is ten")));
};

x.hidden_by_argument_conversion(10);

I would expect to get an error about Incomplete, as the compiler cannot
understand how to convert 10 into an instance of Incomplete. However right
now the enable_if diagnostic is emitted, thus masking the more useful
message about Incomplete.

The attached patch solved the problem by delaying the point where the
enable_if diagnostic is issued.

Thanks,
Ettore Speziale

Attachment: enable_if.diff
Description: Binary data

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to