[cfe-commits] r141170 - in /cfe/trunk: include/clang/Sema/Sema.h lib/Sema/SemaCXXCast.cpp lib/Sema/SemaChecking.cpp lib/Sema/SemaExpr.cpp lib/Sema/SemaExprCXX.cpp

John McCall rjmccall at apple.com
Wed Oct 5 10:56:59 PDT 2011


On Oct 5, 2011, at 9:44 AM, Jakob Stoklund Olesen wrote:

> 
> On Oct 5, 2011, at 12:41 AM, John McCall wrote:
> 
>> Author: rjmccall
>> Date: Wed Oct  5 02:41:44 2011
>> New Revision: 141170
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=141170&view=rev
>> Log:
>> Refactor the analysis of C++ cast expressions so that even
>> C-style and functional casts are built in SemaCXXCast.cpp.
>> Introduce a helper class to encapsulate most of the random
>> state being passed around, at least one level down.
> 
> John,
> 
> I think this commit caused this failure:
> 
> $ Release+Asserts/bin/clang /d/g/clang-tests/gcc-4_2-testsuite/src/g++.apple/block-sync-compare-and-swap.C 
> /d/g/clang-tests/gcc-4_2-testsuite/src/g++.apple/block-sync-compare-and-swap.C:10:36: error: cannot initialize a
>      parameter of type 'void (^)()' with an rvalue of type 'void *'
>  __sync_bool_compare_and_swap(&b, (void*)0, ^{ print("hello\n"); });
>                                   ^~~~~~~~
> 1 error generated.

Yeah, this should not work;  (void*) 0 is not convertible to void(^)() in C++ because it's not a valid null pointer constant.

> It was one of the commits in the r141163-141174 range.

Should be fixed in r141192, thanks.

John.



More information about the cfe-commits mailing list