[cfe-commits] r142864 - in /cfe/trunk: include/clang/Basic/DiagnosticParseKinds.td include/clang/Parse/Parser.h include/clang/Sema/Sema.h lib/Parse/ParseDeclCXX.cpp lib/Parse/ParseStmt.cpp lib/Parse/Parser.cpp lib/Sema/SemaExprCXX.cpp test/SemaTe

Douglas Gregor dgregor at apple.com
Tue Oct 25 12:32:16 PDT 2011



Sent from my iPhone

On Oct 25, 2011, at 11:20 AM, Francois Pichet <pichet2000 at gmail.com> wrote:

> On Tue, Oct 25, 2011 at 2:10 PM, Steven Watanabe <watanabesj at gmail.com> wrote:
>> AMDG
>> 
>> On 10/24/2011 03:31 PM, Douglas Gregor wrote:
>>> Author: dgregor
>>> Date: Mon Oct 24 17:31:10 2011
>>> New Revision: 142864
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=142864&view=rev
>>> Log:
>>> Rework Microsoft __if_exists/__if_not_exists parsing and semantic
>>> analysis to separate dependent names from non-dependent names. For
>>> dependent names, we'll behave differently from Visual C++:
>>> 
>>>   - For __if_exists/__if_not_exists at class scope, we'll just warn
>>>     and then ignore them.
>> 
>> What kind of info do we have on how __if_exists is
>> actually used?  The only use I've ever seen
>> (in http://www.boost.org/boost/typeof/msvc/typeof_impl.hpp)
>> falls in this category.  I'm not sure that
>> __if_exists is terribly useful without supporting
>> this.
> 
> I didn't know boost used __if_exists for MSVC, but it is also used in
> MFC and ATL source code.
> There is another place where clang will have to support __if_exists:
> in a declarator init list initializer
> 
> for example:
> int a[] = { 1, 2, 3 __if_exists(SYMBOL) { , 4} };

That is insane. 



More information about the cfe-commits mailing list