| ; RUN: opt < %s -functionattrs -S | FileCheck %s | 
 | ; RUN: opt < %s -passes=function-attrs -S | FileCheck %s | 
 |  | 
 | @x = global i32 0 | 
 |  | 
 | define void @test_opt(i8* %p) { | 
 | ; CHECK-LABEL: @test_opt | 
 | ; CHECK: (i8* nocapture readnone %p) #0 { | 
 |   ret void | 
 | } | 
 |  | 
 | define void @test_optnone(i8* %p) noinline optnone { | 
 | ; CHECK-LABEL: @test_optnone | 
 | ; CHECK: (i8* %p) #1 { | 
 |   ret void | 
 | } | 
 |  | 
 | declare i8 @strlen(i8*) noinline optnone | 
 | ; CHECK-LABEL: @strlen | 
 | ; CHECK: (i8*) #1 | 
 |  | 
 | ; CHECK-LABEL: attributes #0 | 
 | ; CHECK: = { norecurse nounwind readnone } | 
 | ; CHECK-LABEL: attributes #1 | 
 | ; CHECK: = { noinline optnone } |