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