1; RUN: opt < %s -basic-aa -function-attrs -S | FileCheck %s 2; RUN: opt < %s -aa-pipeline=basic-aa -passes=function-attrs -S | FileCheck %s 3 4@x = global i32 0 5 6; CHECK: Function Attrs 7; CHECK-SAME: readnone 8; CHECK-NEXT: declare i32 @e 9declare i32 @e() readnone 10 11; CHECK: Function Attrs 12; CHECK-SAME: readnone 13; CHECK-NEXT: define i32 @f 14define i32 @f() { 15 %tmp = call i32 @e( ) ; <i32> [#uses=1] 16 ret i32 %tmp 17} 18 19; CHECK: Function Attrs 20; CHECK-SAME: readnone 21; CHECK-NEXT: define i32 @g 22define i32 @g() readonly { 23 ret i32 0 24} 25 26; CHECK: Function Attrs 27; CHECK-SAME: readnone 28; CHECK-NEXT: define i32 @h 29define i32 @h() readnone { 30 %tmp = load i32, i32* @x ; <i32> [#uses=1] 31 ret i32 %tmp 32} 33