// RUN: %clang_cc1 -fsyntax-only -verify %s -triple x86_64-linux-gnu -target-feature -x87
// RUN: %clang_cc1 -fsyntax-only -verify %s -triple x86_64-linux-gnu -DNOERROR
// expected-no-diagnostics
typedef long double long_double;
// Declaration is fine, unless it is called or defined.
double ;
T ;
// No code is generated for deleted functions
long_double ;
double ;
float ;
// expected-error@+4{{'def' requires 'long_double' (aka 'long double') type support, but target 'x86_64-unknown-linux-gnu' does not support it}}
// expected-note@+3{{'def' defined here}}
// expected-note@+2{{'x' defined here}}
int
// expected-note@+3{{'ld_args' defined here}}
// expected-note@+2{{'ld_args' defined here}}
int ;
int
// expected-note@+2{{'ld_ret' defined here}}
long_double ;
int
int
void
;
;
;
void
void
void
void
// Double and Float return type on x86_64 do not use x87 registers
double
double ;
int
float
float ;
int