/* APPLE LOCAL begin radar 4280641 */
/* { dg-do compile { target i?86-*-darwin* } } */
/* { dg-skip-if "" { i?86-*-darwin* } { "-m64" } { "" } } */
#include <objc/Object.h>

@interface Example : Object
        float FLOAT;
        double DOUBLE;
	long double LONGDOUBLE;
        id    ID;
@end

@implementation Example
 - (double) RET_DOUBLE
   {
	return DOUBLE;
   }
 - (float) RET_FLOAT
   {
	return FLOAT;
   }
 - (long double) RET_LONGDOUBLE
   {
	return LONGDOUBLE;
   }
@end

int main()
{
	Example* pe;
	double dd = [pe RET_DOUBLE];
	dd = [pe RET_FLOAT];
	dd = [pe RET_LONGDOUBLE];
}

/* { dg-final { scan-assembler "objc_msgSend_fpret" } } */

/* { dg-final { scan-assembler-not "objc_msgSend\[^_S\]" } } */
/* APPLE LOCAL end radar 4280641 */
