Skip to content
Snippets Groups Projects
  1. Nov 24, 2009
  2. Nov 23, 2009
  3. Nov 22, 2009
  4. Nov 21, 2009
  5. Nov 20, 2009
  6. Nov 19, 2009
  7. Nov 17, 2009
  8. Nov 16, 2009
    • Douglas Gregor's avatar
      First part of changes to eliminate problems with cv-qualifiers and · 1b8fe5b7
      Douglas Gregor authored
      sugared types. The basic problem is that our qualifier accessors
      (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at
      the current QualType and not at any qualifiers that come from sugared
      types, meaning that we won't see these qualifiers through, e.g.,
      typedefs:
      
        typedef const int CInt;
        typedef CInt Self;
      
      Self.isConstQualified() currently returns false!
      
      Various bugs (e.g., PR5383) have cropped up all over the front end due
      to such problems. I'm addressing this problem by splitting each
      qualifier accessor into two versions: 
      
        - the "local" version only returns qualifiers on this particular
          QualType instance
        - the "normal" version that will eventually combine qualifiers from this
          QualType instance with the qualifiers on the canonical type to
          produce the full set of qualifiers.
      
      This commit adds the local versions and switches a few callers from
      the "normal" version (e.g., isConstQualified) over to the "local"
      version (e.g., isLocalConstQualified) when that is the right thing to
      do, e.g., because we're printing or serializing the qualifiers. Also,
      switch a bunch of
        
        Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType()
      
      expressions over to 
      
        Context.hasSameUnqualifiedType(T1, T2)
      
      llvm-svn: 88969
      1b8fe5b7
Loading