// RUN: %clang_cc1 -x c -triple x86_64-pc-linux-gnu -dwarf-version=4 -fsyntax-only -verify %s
int *invalid1; // expected-error {{'btf_type_tag' attribute takes one argument}}
int *invalid2; // expected-error {{'btf_type_tag' attribute requires a string}}
int * __tag1 __tag2 * __tag3 __tag4 * __tag5 __tag6 *g;
typedef void ;
typedef __fn_t __tag1 __tag2 * __tag3 __tag4 *__fn2_t;
;
int __tag4 * __tag5 * __tag6 *
// The btf_type_tag attribute will be ignored during _Generic type matching
int g1 = ;
int g2 = ;
int g3 = ;
// The btf_type_tag attribute will be ignored during overloadable type matching
void // expected-note {{previous definition is here}}
void // expected-error {{redefinition of 'bar2'}}
void