// REQUIRES: aarch64-registered-target
// RUN: %clang_cc1 %s -triple aarch64-none-linux-gnu -target-feature +sve  -fsyntax-only -verify
// expected-no-diagnostics

// This test makes sure that the enum declarations in section "5. Enum
// declarations" of the SVE ACLE [1] are not presented as typedefs in
// `arm_sve.h`. It does so by creating a typedef'd struct with the
// same identifier as the one defined in `arm_sve.h`, then checking that
// it does not overload the enum defined in `arm_sve.h`.
//
// [1] https://developer.arm.com/documentation/100987/latest version 00bet6

typedef struct { float f; } svpattern;
typedef struct { float f; } svprfop;
#include <arm_sve.h>
enum svpattern a1 = SV_ALL;
svpattern b1 = {1.0f};
enum svprfop a2 = SV_PLDL1KEEP;
svprfop b2 = {1.0f};
