Committed as revision 130739.<br><br><div class="gmail_quote">On Mon, May 2, 2011 at 3:27 PM, Richard Smith <span dir="ltr"><<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Richard,<br>
<div class="im"><br>
On Mon, May 2, 2011 22:22, Richard Trieu wrote:<br>
>> Index: lib/Sema/SemaStmt.cpp<br>
>> ===================================================================<br>
>> --- lib/Sema/SemaStmt.cpp        (revision 129825)<br>
>> +++ lib/Sema/SemaStmt.cpp        (working copy)<br>
>> @@ -1257,7 +1257,8 @@<br>
>> ExprResult BoundExpr;<br>
>> if (const ConstantArrayType *CAT = dyn_cast<ConstantArrayType>(UnqAT))<br>
>> BoundExpr = Owned(IntegerLiteral::Create(Context, CAT->getSize(),<br>
>> -                                                 Context.IntTy,<br>
>> RangeLoc));<br>
>> +<br>
>> Context.getPointerDiffType(),<br>
>> +                                                 RangeLoc));<br>
>><br>
>> This should be the pointer difference type for the right address space.<br>
>>  You could add an accessor to ASTContext to get the corresponding type<br>
>> for the array's address space from the target info (perhaps<br>
>> ASTContext::getArrayBoundType(QualType ArrayType)).<br>
><br>
> I am not sure I understand.  I thought that there's only one pointer<br>
> difference type?<br>
<br>
</div>In C and C++, there is, but TargetInfo provides the possibility of<br>
different PtrDiffTypes for each address space. However, looking a little<br>
deeper it seems that clang doesn't actually use those other types yet, so<br>
I think your latest patch is fine for now. Feel free to check it in!<br>
<br>
Thanks,<br>
<font color="#888888">Richard<br>
<br>
</font></blockquote></div><br>