Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/inline-asm-validate-m68k.c @ 222:81f6424ef0e3 llvm-original
LLVM original branch
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 18 Jul 2021 22:10:01 +0900 |
parents | 79ff65ed7e25 |
children | 1f2b6ac9f198 |
line wrap: on
line source
// REQUIRES: m68k-registered-target // RUN: %clang_cc1 -triple m68k -fsyntax-only -verify %s -DINVALID // RUN: %clang_cc1 -triple m68k -fsyntax-only -verify %s #ifdef INVALID // Invalid constraint usages that can be blocked by frontend void I() { static const int BelowMin = 0; static const int AboveMax = 9; asm ("" :: "I"(BelowMin)); // expected-error{{value '0' out of range for constraint 'I'}} asm ("" :: "I"(AboveMax)); // expected-error{{value '9' out of range for constraint 'I'}} } void J() { static const int BelowMin = -0x8001; static const int AboveMax = 0x8000; asm ("" :: "J"(BelowMin)); // expected-error{{value '-32769' out of range for constraint 'J'}} asm ("" :: "J"(AboveMax)); // expected-error{{value '32768' out of range for constraint 'J'}} } void L() { static const int BelowMin = -9; static const int AboveMax = 0; asm ("" :: "L"(BelowMin)); // expected-error{{value '-9' out of range for constraint 'L'}} asm ("" :: "L"(AboveMax)); // expected-error{{value '0' out of range for constraint 'L'}} } void N() { static const int BelowMin = 23; static const int AboveMax = 32; asm ("" :: "N"(BelowMin)); // expected-error{{value '23' out of range for constraint 'N'}} asm ("" :: "N"(AboveMax)); // expected-error{{value '32' out of range for constraint 'N'}} } void O() { // Valid only if it's 16 static const int IncorrectVal = 18; asm ("" :: "O"(IncorrectVal)); // expected-error{{value '18' out of range for constraint 'O'}} } void P() { static const int BelowMin = 7; static const int AboveMax = 16; asm ("" :: "P"(BelowMin)); // expected-error{{value '7' out of range for constraint 'P'}} asm ("" :: "P"(AboveMax)); // expected-error{{value '16' out of range for constraint 'P'}} } void C0() { // Valid only if it's 0 static const int IncorrectVal = 1; asm ("" :: "C0"(IncorrectVal)); // expected-error{{value '1' out of range for constraint 'C0'}} } #else // Valid constraint usages. // Note that these constraints can not be fully validated by frontend. // So we're only testing the availability of their letters here. // expected-no-diagnostics void K() { asm ("" :: "K"(0x80)); } void M() { asm ("" :: "M"(0x100)); } void Ci() { asm ("" :: "Ci"(0)); } void Cj() { asm ("" :: "Cj"(0x8000)); } // Register constraints void a(int x) { asm ("" :: "a"(x)); } void d(int x) { asm ("" :: "d"(x)); } #endif