1cac18add73d095eaab600aefe27ea7174aec4922Nico Weber// RUN: %clang_cc1 -fsyntax-only -verify -std=gnu++11 %s 2cac18add73d095eaab600aefe27ea7174aec4922Nico Weber// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 3cac18add73d095eaab600aefe27ea7174aec4922Nico Weber 4cac18add73d095eaab600aefe27ea7174aec4922Nico Weber#if !defined(__STRICT_ANSI__) 59b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber__float128 f; // expected-error {{support for type '__float128' is not yet implemented}} 6cac18add73d095eaab600aefe27ea7174aec4922Nico Weber// But this should work: 7cac18add73d095eaab600aefe27ea7174aec4922Nico Webertemplate<typename> struct __is_floating_point_helper {}; 8cac18add73d095eaab600aefe27ea7174aec4922Nico Webertemplate<> struct __is_floating_point_helper<__float128> {}; 99b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber 109b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber// FIXME: This could have a better diag. 119b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Webervoid g(int x, __float128 *y) { 129b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber x + *y; // expected-error {{invalid operands to binary expression ('int' and '__float128')}} 139b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber} 149b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber 15cac18add73d095eaab600aefe27ea7174aec4922Nico Weber#else 16cac18add73d095eaab600aefe27ea7174aec4922Nico Weber__float128 f; // expected-error {{unknown type name '__float128'}} 17cac18add73d095eaab600aefe27ea7174aec4922Nico Webertemplate<typename> struct __is_floating_point_helper {}; 18cac18add73d095eaab600aefe27ea7174aec4922Nico Webertemplate<> struct __is_floating_point_helper<__float128> {}; // expected-error {{use of undeclared identifier '__float128'}} 199b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber 209b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Webervoid g(int x, __float128 *y) { // expected-error {{unknown type name '__float128'}} 219b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber x + *y; 229b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber} 239b9bdba90cb7a61ed0e5bbadf9155b9d6848ce98Nico Weber 24cac18add73d095eaab600aefe27ea7174aec4922Nico Weber#endif 25