Viewing file: pragma_arch_attribute.c (1.18 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Test for #pragma target macros. */ /* { dg-do compile } */ /* { dg-require-effective-target arm_arch_v8a_ok } */ /* { dg-add-options arm_arch_v8a } */
#include <arm_acle.h>
#ifdef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is already defined." #endif
#pragma GCC push_options #pragma GCC target ("arch=armv8-a+crc") #ifndef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is not defined in push 1." #endif #pragma GCC pop_options
#ifdef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is defined after pop 1." #endif
#pragma GCC push_options #pragma GCC target ("+crc") #ifndef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is not defined in push 2." #endif #pragma GCC pop_options
#ifdef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is defined after pop 2." #endif
__attribute__((target("+crc"))) void test_crc_unknown_ok_attr_1 () { __crc32b (0, 0); }
#ifdef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is defined after attribute set 1." #endif
__attribute__((target("arch=armv8-a+crc"))) void test_crc_unknown_ok_attr_2 () { __crc32b (0, 0); }
#ifdef __ARM_FEATURE_CRC32 # error "__ARM_FEATURE_CRC32 is defined after attribute set 2." #endif
#pragma GCC reset_options
|