[cfe-commits] r110832 - in /cfe/trunk: lib/CodeGen/CodeGenFunction.cpp lib/Sema/SemaStmt.cpp test/CodeGenObjC/return-objc-object.mm test/SemaObjC/deref-interface.m
Daniel Dunbar
daniel at zuster.org
Sun Aug 15 13:47:52 PDT 2010
Hi Fariborz,
On Wed, Aug 11, 2010 at 10:37 AM, Fariborz Jahanian <fjahanian at apple.com> wrote:
> Author: fjahanian
> Date: Wed Aug 11 12:37:35 2010
> New Revision: 110832
>
> URL: http://llvm.org/viewvc/llvm-project?rev=110832&view=rev
> Log:
> IRGen support for functions returning objc object
> types. Fixes PR7865.
>
> Added:
> cfe/trunk/test/CodeGenObjC/return-objc-object.mm
> Modified:
> cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> cfe/trunk/lib/Sema/SemaStmt.cpp
> cfe/trunk/test/SemaObjC/deref-interface.m
>
> Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=110832&r1=110831&r2=110832&view=diff
> ==============================================================================
> --- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)
> +++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Wed Aug 11 12:37:35 2010
> @@ -77,7 +77,7 @@
>
> bool CodeGenFunction::hasAggregateLLVMType(QualType T) {
> return T->isRecordType() || T->isArrayType() || T->isAnyComplexType() ||
> - T->isMemberFunctionPointerType();
> + T->isMemberFunctionPointerType() || T->isObjCObjectType();
> }
>
> void CodeGenFunction::EmitReturnBlock() {
>
> Modified: cfe/trunk/lib/Sema/SemaStmt.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaStmt.cpp?rev=110832&r1=110831&r2=110832&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaStmt.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaStmt.cpp Wed Aug 11 12:37:35 2010
> @@ -30,15 +30,6 @@
> Sema::OwningStmtResult Sema::ActOnExprStmt(FullExprArg expr) {
> Expr *E = expr->takeAs<Expr>();
> assert(E && "ActOnExprStmt(): missing expression");
> - if (E->getType()->isObjCObjectType()) {
> - if (LangOpts.ObjCNonFragileABI)
> - Diag(E->getLocEnd(), diag::err_indirection_requires_nonfragile_object)
> - << E->getType();
> - else
> - Diag(E->getLocEnd(), diag::err_direct_interface_unsupported)
> - << E->getType();
> - return StmtError();
> - }
> // C99 6.8.3p2: The expression in an expression statement is evaluated as a
> // void expression for its side effects. Conversion to void allows any
> // operand, even incomplete types.
>
> Added: cfe/trunk/test/CodeGenObjC/return-objc-object.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/return-objc-object.mm?rev=110832&view=auto
> ==============================================================================
> --- cfe/trunk/test/CodeGenObjC/return-objc-object.mm (added)
> +++ cfe/trunk/test/CodeGenObjC/return-objc-object.mm Wed Aug 11 12:37:35 2010
> @@ -0,0 +1,19 @@
> +// RUN: %clang_cc1 -triple x86_64 -emit-llvm -o - %s | FileCheck %s
> +
> + at protocol P1 @end
> + at interface NSOperationQueue
> +{
> + char ch[64];
> + double d;
> +}
> + at end
> +
> +NSOperationQueue &f();
> +NSOperationQueue<P1> &f1();
> +
> +void call_once() {
> + f();
> + f1();
> +}
> +// CHECK: call %0* @_Z1fv()
> +// CHECK: call %0* @_Z2f1v()
>
> Modified: cfe/trunk/test/SemaObjC/deref-interface.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/deref-interface.m?rev=110832&r1=110831&r2=110832&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/deref-interface.m (original)
> +++ cfe/trunk/test/SemaObjC/deref-interface.m Wed Aug 11 12:37:35 2010
> @@ -1,4 +1,5 @@
> // RUN: %clang_cc1 -fobjc-nonfragile-abi -verify -fsyntax-only %s
> +// XFAIL: *
Um? This is missing an explanation.
- Daniel
> @interface NSView
> - (id)initWithView:(id)realView;
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list