diff --git a/regression/ansi-c/gcc_types_compatible_p1/main.c b/regression/ansi-c/gcc_types_compatible_p1/main.c index 4f327d51085..09b469b291f 100644 --- a/regression/ansi-c/gcc_types_compatible_p1/main.c +++ b/regression/ansi-c/gcc_types_compatible_p1/main.c @@ -67,6 +67,13 @@ STATIC_ASSERT(__builtin_types_compatible_p(typeof (hot) *, int *)); STATIC_ASSERT(__builtin_types_compatible_p(typeof (hot), typeof (janette))); STATIC_ASSERT(__builtin_types_compatible_p(__int128, signed __int128)); +#ifndef __clang__ +// clang doesn't have these +#if defined(__x86_64__) || defined(__i386__) +STATIC_ASSERT(__builtin_types_compatible_p(__float128, _Float128)); +#endif +#endif + /* Incompatible types */ STATIC_ASSERT(!__builtin_types_compatible_p(char, _Bool)); diff --git a/src/ansi-c/scanner.l b/src/ansi-c/scanner.l index 7a97b0a7b89..1511da8fbf3 100644 --- a/src/ansi-c/scanner.l +++ b/src/ansi-c/scanner.l @@ -466,7 +466,8 @@ void ansi_c_scanner_init() return make_identifier(); } -"__float128" { // clang doesn't have it +"__float128" | +"_Float128" { // clang doesn't have it if(PARSER.mode==configt::ansi_ct::flavourt::GCC) { loc(); return TOK_GCC_FLOAT128; } else