[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

Francois Pichet pichet2000 at gmail.com
Tue Oct 25 11:20:20 PDT 2011


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} };




More information about the cfe-commits mailing list