1 // REQUIRES: aarch64-registered-target 2 // RUN: %clang_cc1 %s -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -verify 3 // expected-no-diagnostics 4 5 // This test makes sure that the enum declarations in section "5. Enum 6 // declarations" of the SVE ACLE [1] are not presented as typedefs in 7 // `arm_sve.h`. It does so by creating a typedef'd struct with the 8 // same identifier as the one defined in `arm_sve.h`, then checking that 9 // it does not overload the enum defined in `arm_sve.h`. 10 // 11 // [1] https://developer.arm.com/documentation/100987/latest version 00bet6 12 13 typedef struct { float f; } svpattern; 14 typedef struct { float f; } svprfop; 15 #include <arm_sve.h> 16 enum svpattern a1 = SV_ALL; 17 svpattern b1 = {1.0f}; 18 enum svprfop a2 = SV_PLDL1KEEP; 19 svprfop b2 = {1.0f}; 20