Skip to content
  1. Dec 12, 2007
  2. Dec 07, 2007
  3. Dec 03, 2007
  4. Nov 26, 2007
  5. Nov 19, 2007
  6. Nov 14, 2007
  7. Nov 13, 2007
  8. Nov 07, 2007
    • Steve Naroff's avatar
      · 4d7b3676
      Steve Naroff authored
      Teach ASTContext::tagTypesAreCompatible() about the built-in ObjC types (Class and id), removing a bogus warning.
      
      llvm-svn: 43809
      4d7b3676
  9. Nov 06, 2007
  10. Nov 05, 2007
  11. Nov 03, 2007
    • Steve Naroff's avatar
      · a397efd9
      Steve Naroff authored
      Implement rewrite rules for ObjC string constants.
      
      llvm-svn: 43665
      a397efd9
  12. Nov 01, 2007
  13. Oct 31, 2007
  14. Oct 30, 2007
  15. Oct 29, 2007
  16. Oct 17, 2007
  17. Oct 16, 2007
    • Fariborz Jahanian's avatar
      4bef462a
    • Steve Naroff's avatar
      · f73b784a
      Steve Naroff authored
      Change the type of ObjCStringLiteral from "struct __builtin_CFString *" to "NSConstantString *".
      
      This makes the typecheck much happier. Without this change, the type checker would have to special case "struct __builtin_CFString *". This change does assume the interface for NSConstantString is declared in the translation unit.
      
      I left ASTContext::getCFConstantStringType() around for now (with a comment that says it is currently unused).
      
      llvm-svn: 43021
      f73b784a
  18. 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
    • Steve Naroff's avatar
      · 66e9f331
      Steve Naroff authored
      Added ASTContext::setObjcIdType/getObjcIdType(), set by Sema.
      
      Also noticed ASTContext::BuiltinVaListType wasn't being initialized to the null type (so I set it).
      
      llvm-svn: 42983
      66e9f331
  19. Oct 11, 2007
Loading