[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