1*4882a593Smuzhiyun#!/bin/sh 2*4882a593Smuzhiyun# Test for gcc 'asm goto' support 3*4882a593Smuzhiyun# Copyright (C) 2010, Jason Baron <jbaron@redhat.com> 4*4882a593Smuzhiyun 5*4882a593Smuzhiyuncat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y" 6*4882a593Smuzhiyunint main(void) 7*4882a593Smuzhiyun{ 8*4882a593Smuzhiyun#if defined(__arm__) || defined(__aarch64__) 9*4882a593Smuzhiyun /* 10*4882a593Smuzhiyun * Not related to asm goto, but used by jump label 11*4882a593Smuzhiyun * and broken on some ARM GCC versions (see GCC Bug 48637). 12*4882a593Smuzhiyun */ 13*4882a593Smuzhiyun static struct { int dummy; int state; } tp; 14*4882a593Smuzhiyun asm (".long %c0" :: "i" (&tp.state)); 15*4882a593Smuzhiyun#endif 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunentry: 18*4882a593Smuzhiyun asm goto ("" :::: entry); 19*4882a593Smuzhiyun return 0; 20*4882a593Smuzhiyun} 21*4882a593SmuzhiyunEND 22