On Feb 14, 2009, at 10:08 AM, Mike Stump wrote:

> On Feb 13, 2009, at 6:45 PM, Daniel Dunbar wrote:
>> x86_64 ABI: Need to use canonical types when comparing against
>> ASTContext types.
>
> [ thinking out loud ] Does it make sense to encode this into the type
> system so that we get compilation errors when people get it wrong?
> I've not thought about it yet, but...   we could even have a
> conversion operator that can canonicalize a type, if it needed to be
> canonical.

We could certainly take away QualType::operator==/!= and instead force  
everyone to use ASTContext::hasSameType . It would probably simplify a  
bit of code, and eliminate some not-yet-uncovered bugs that would show  
up with gratuitous typedef'ing.

I've also considered doing the same thing with  
QualType::getCVRQualifiers, since this doesn't give you all of the cvr- 
qualifiers unless you already have the canonical type. I've come  
across a few places where we've made this mistake.

There *might* be a performance cost, since getting at the canonical  
type isn't entirely free, but it'd be worth a try.

        - Doug
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to