objc - fix up the builtin type for objc_assign_ivar.

// rdar://9362887.

llvm-svn: 138412
This commit is contained in:
Fariborz Jahanian 2011-08-23 23:33:09 +00:00
parent 7a98a7e681
commit 73952fc263
3 changed files with 13 additions and 3 deletions

View File

@ -35,6 +35,7 @@
// A -> "reference" to __builtin_va_list
// V -> Vector, following num elements and a base type.
// X -> _Complex, followed by the base type.
// Y -> ptrdiff_t
// P -> FILE
// J -> jmp_buf
// SJ -> sigjmp_buf
@ -690,8 +691,7 @@ LIBBUILTIN(objc_read_weak, "GG*", "f", "/objc/objc-auto.h", OBJC_LANG)
// id objc_assign_weak(id value, id *location)
LIBBUILTIN(objc_assign_weak, "GGG*", "f", "/objc/objc-auto.h", OBJC_LANG)
// id objc_assign_ivar(id value, id dest, ptrdiff_t offset)
// FIXME. Darwin has ptrdiff_t typedef'ed to int.
LIBBUILTIN(objc_assign_ivar, "GGGi", "f", "/objc/objc-auto.h", OBJC_LANG)
LIBBUILTIN(objc_assign_ivar, "GGGY", "f", "/objc/objc-auto.h", OBJC_LANG)
// id objc_assign_global(id val, id *dest)
LIBBUILTIN(objc_assign_global, "GGG*", "f", "/objc/objc-auto.h", OBJC_LANG)
// id objc_assign_strongCast(id val, id *dest

View File

@ -6140,7 +6140,11 @@ static QualType DecodeTypeFromStr(const char *&Str, const ASTContext &Context,
assert(!RequiresICE && "Can't require complex ICE");
Type = Context.getComplexType(ElementType);
break;
}
}
case 'Y' : {
Type = Context.getPointerDiffType();
break;
}
case 'P':
Type = Context.getFILEType();
if (Type.isNull()) {

View File

@ -0,0 +1,6 @@
// RUN: %clang_cc1 -x objective-c %s -fsyntax-only -verify
// rdar://9362887
typedef __typeof__(((int*)0)-((int*)0)) ptrdiff_t;
extern id objc_assign_ivar(id value, id dest, ptrdiff_t offset);