|  | //@ 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 {{.*}} } | 
|  | } |