On Tue, Oct 21, 2008 at 9:35 PM, Chris Lattner <[EMAIL PROTECTED]> wrote:
> On Oct 21, 2008, at 9:04 PM, Doug Gregor wrote:
>> We're now using isAtLeastAsQualifiedAs in
>> Sema::CheckPointerTypesForAssignment. That currently ignores
>> address-space qualifiers, but adding those asserts would turn code
>> that would now compile into something that crashes the compiler.
>
> I agree that it is a risk, however, code in that situation is probably just
> being silently miscompiled. If we get through 'make test' without
> regressions, I'd be happy to be aggressive on this. Clang is at a point in
> its development where we can afford to expose breakage aggressively.
Okay, done.
>>>> @@ -356,7 +360,11 @@
>>>> return LV_Valid;
>>>> case DeclRefExprClass: { // C99 6.5.1p2
>>>> const Decl *RefdDecl = cast<DeclRefExpr>(this)->getDecl();
>>>> - if (isa<VarDecl>(RefdDecl) || isa<ImplicitParamDecl>(RefdDecl))
>>>> + if (isa<VarDecl>(RefdDecl) ||
>>>> + isa<ImplicitParamDecl>(RefdDecl) ||
>>>> + // C++ 3.10p2: An lvalue refers to an object or function.
>>>> + isa<FunctionDecl>(RefdDecl) ||
>>>> + isa<OverloadedFunctionDecl>(RefdDecl))
>>>
>>> Does this make sense to be a predicate on valuedecl?
>>
>> I don't think it's necessary unless we need this kind of check again
>> later.
>
> ok, maybe a static function? When it was one "isa" I was fine with it being
> inlined. As it grows, I'm less comfortable with it.
Okay, a static function then.
> Some other thoughts about it:
>
> ImplicitParamDecl isa VarDecl, so I think you can drop the ImplicitParamDecl
> (I know that this isn't new to this patch).
Okay, done.
> Does this change the behavior of C by adding FunctionDecl?
No, that's dealt with above, but now that we have a static function
C++ 13.3.3.2p3 bullet 3 I've added the check back.
- Doug
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits