| //@ revisions: all strong basic none | |
| //@ ignore-nvptx64 stack protector not supported | |
| //@ [all] compile-flags: -Z stack-protector=all | |
| //@ [strong] compile-flags: -Z stack-protector=strong | |
| //@ [basic] compile-flags: -Z stack-protector=basic | |
| #![crate_type = "lib"] | |
| #[no_mangle] | |
| pub fn foo() { | |
| // CHECK: @foo() unnamed_addr #0 | |
| // all-NOT: attributes #0 = { {{.*}}sspstrong {{.*}} } | |
| // all-NOT: attributes #0 = { {{.*}}ssp {{.*}} } | |
| // all: attributes #0 = { {{.*}}sspreq {{.*}} } | |
| // all-NOT: attributes #0 = { {{.*}}sspstrong {{.*}} } | |
| // all-NOT: attributes #0 = { {{.*}}ssp {{.*}} } | |
| // strong-NOT: attributes #0 = { {{.*}}sspreq {{.*}} } | |
| // strong-NOT: attributes #0 = { {{.*}}ssp {{.*}} } | |
| // strong: attributes #0 = { {{.*}}sspstrong {{.*}} } | |
| // strong-NOT: attributes #0 = { {{.*}}sspreq {{.*}} } | |
| // strong-NOT: attributes #0 = { {{.*}}ssp {{.*}} } | |
| // basic-NOT: attributes #0 = { {{.*}}sspreq {{.*}} } | |
| // basic-NOT: attributes #0 = { {{.*}}sspstrong {{.*}} } | |
| // basic: attributes #0 = { {{.*}}ssp {{.*}} } | |
| // basic-NOT: attributes #0 = { {{.*}}sspreq {{.*}} } | |
| // basic-NOT: attributes #0 = { {{.*}}sspstrong {{.*}} } | |
| // none-NOT: attributes #0 = { {{.*}}sspreq {{.*}} } | |
| // none-NOT: attributes #0 = { {{.*}}sspstrong {{.*}} } | |
| // none-NOT: attributes #0 = { {{.*}}ssp {{.*}} } | |
| } |