⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attr-alias-3.c

📁 用于进行gcc测试
💻 C
字号:
// { dg-do link }// { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } }// { dg-require-alias "" }// { dg-options "-O2 -fno-common" }// Copyright 2005 Free Software Foundation, Inc.// Contributed by Alexandre Oliva <aoliva@redhat.com>// PR middle-end/24295// The unit-at-a-time call graph code used to fail to emit variables// without external linkage that were only used indirectly, through// aliases.  Although the PR above is about #pragma weak-introduced// aliases, the underlying machinery is the same.#ifndef ATTRIBUTE_USED# define ATTRIBUTE_USED __attribute__((used))#endifstatic int lv1;extern int Av1a __attribute__((alias ("lv1")));int *pv1a = &Av1a;static int lv2;extern int Av2a __attribute__((alias ("lv2")));int *pv2a = &lv2;static int lv3;extern int Av3a __attribute__((alias ("lv3")));static int *pv3a ATTRIBUTE_USED = &Av3a;static int lv4;extern int Av4a __attribute__((alias ("lv4")));static int *pv4a = &Av4a;typedef void ftype(void);static void lf1(void) {}extern ftype Af1a __attribute__((alias ("lf1")));ftype *pf1a = &Af1a;static void lf2(void) {}extern ftype Af2a __attribute__((alias ("lf2")));ftype *pf2a = &Af2a;static void lf3(void) {}extern ftype Af3a __attribute__((alias ("lf3")));static ftype *pf3a ATTRIBUTE_USED = &Af3a;static void lf4(void) {}extern ftype Af4a __attribute__((alias ("lf4")));static ftype *pf4a = &Af4a;main() {#ifdef __mips  /* Use real asm for MIPS, to stop the assembler warning about     orphaned high-part relocations.  */  asm volatile ("lw $2,%0\n\tlw $2,%1" : : "m" (pv4a), "m" (pf4a) : "$2");#else  asm volatile ("" : : "m" (pv4a), "m" (pf4a));#endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -