// RUN: %clang_cc1 %s -triple=i686-apple-darwin9 -target-cpu pentium4 -verify -DVERIFY
// RUN: %clang_cc1 %s -E -triple=i686-apple-darwin9 -target-cpu pentium4
// These are technically implemented as keywords, but __has_builtin should
// still return true.
// These are C++-only builtins.
// Make sure we have x86 builtins only (forced with target triple).
// Macro expansion does not occur in the parameter to __has_builtin,
// __has_feature, etc. (as is also expected behaviour for ordinary
// macros), so the following should not expand:
// But deferring should expand:
// expected-error@+1 {{builtin feature check macro requires a parenthesized identifier}}
// The following are not identifiers:
;
;
;
;
// The following are:
;
;
// expected-error@+1 {{too few arguments}}
// expected-error@+1 {{too many arguments}}
// expected-error@+1 {{missing ')' after 'abc'}}
// expected-error@+1 {{missing ')' after 'abc'}}
// expected-error@+1 {{missing ')' after '.'}}
// expected-error@+1 {{nested parentheses not permitted in '__is_identifier'}}
// expected-error@+1 {{missing '(' after '__is_identifier'}} expected-error@+1 {{expected value}}
// expected-error@+1 {{unterminated}} expected-error@+1 {{expected value}}