|  | ; RUN: opt < %s -passes=function-attrs -S | FileCheck %s | 
|  |  | 
|  | @x = global i32 0 | 
|  |  | 
|  | define void @test_opt(ptr %p) { | 
|  | ; CHECK-LABEL: @test_opt | 
|  | ; CHECK: (ptr readnone captures(none) %p) #0 { | 
|  | ret void | 
|  | } | 
|  |  | 
|  | define void @test_optnone(ptr %p) noinline optnone { | 
|  | ; CHECK-LABEL: @test_optnone | 
|  | ; CHECK: (ptr %p) #1 { | 
|  | ret void | 
|  | } | 
|  |  | 
|  | declare i8 @strlen(ptr) noinline optnone | 
|  | ; CHECK-LABEL: @strlen | 
|  | ; CHECK: (ptr) #1 | 
|  |  | 
|  | ; CHECK-LABEL: attributes #0 | 
|  | ; CHECK: = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) } | 
|  | ; CHECK-LABEL: attributes #1 | 
|  | ; CHECK: = { noinline optnone } |