Skip to content
  1. Oct 30, 2007
  2. Oct 29, 2007
  3. Oct 26, 2007
  4. Oct 25, 2007
  5. Oct 24, 2007
  6. Oct 23, 2007
  7. Oct 17, 2007
  8. Oct 15, 2007
    • Steve Naroff's avatar
      · 32e44c00
      Steve Naroff authored
      Move type compatibility predicates from Type to ASTContext. In addition, the predicates are now instance methods (they were previously static class methods on Type).
      
      This allowed me to fix the following hack from this weekend...
      
      // FIXME: Devise a way to do this without using strcmp.
      // Would like to say..."return getAsStructureType() == IdStructType;", but
      // we don't have a pointer to ASTContext.
      bool Type::isObjcIdType() const {
        if (const RecordType *RT = getAsStructureType())
          return !strcmp(RT->getDecl()->getName(), "objc_object");
        return false;
      }
      
      ...which is now...
      
      bool isObjcIdType(QualType T) const {
        return T->getAsStructureType() == IdStructType;
      }
      
      Side notes:
      
      - I had to remove a convenience function from the TypesCompatibleExpr class.
      
      int typesAreCompatible() const {return Type::typesAreCompatible(Type1,Type2);}
      
      Which required a couple clients get a little more verbose...
      
      -    Result = TCE->typesAreCompatible();
      +    Result = Ctx.typesAreCompatible(TCE->getArgType1(), TCE->getArgType2());
      
      Overall, I think this change also makes sense for a couple reasons...
      
      1) Since ASTContext vends types, it makes sense for the type compatibility API to be there.
      2) This allows the type compatibility predeciates to refer to data not strictly present in the AST (which I have found problematic on several occasions).
      
      llvm-svn: 43009
      32e44c00
    • Anders Carlsson's avatar
      Add code generation and sema checking for __builtin_va_arg. · 7e13ab88
      Anders Carlsson authored
      llvm-svn: 43006
      7e13ab88
  9. Oct 13, 2007
  10. Oct 09, 2007
Loading