blob: 8a680cbab7b45757472ba4f5d3abee2c6e41579a [file] [log] [blame]
// { dg-do compile }
// { dg-skip-if "only works for ELF targets" { *-*-darwin* *-*-aix* } }
import gcc.attributes;
@symver("type")
struct S {} // { dg-warning ".symver. attribute does not apply to types" }
@attribute("symver", 123)
int f1(); // { dg-error ".symver. attribute argument not a string constant" }
@symver("format")
int f2() // { dg-error "symver attribute argument must have format .name@nodename'" }
{ // { dg-error ".symver. attribute argument .format. must contain one or two .@." "" { target *-*-* } .-1 }
return 0;
}
int f3(@symver("param@VER_1") int param) // { dg-warning ".symver. attribute only applies to functions and variables" }
{
return param;
}
@symver("extern@VER_2")
extern int f4(); // { dg-error "symbol needs to be defined to have a version" }