Extend 'readonly' and 'readnone' to work on function arguments as well as
[oota-llvm.git] / test / Transforms / FunctionAttrs / 2009-01-04-Annotate.ll
1 ; RUN: opt < %s -functionattrs -S | FileCheck %s
2
3 ; CHECK: declare noalias i8* @fopen(i8* nocapture readonly, i8* nocapture readonly) #0
4 declare i8* @fopen(i8*, i8*)
5
6 ; CHECK: declare i8 @strlen(i8* nocapture) #1
7 declare i8 @strlen(i8*)
8
9 ; CHECK: declare noalias i32* @realloc(i32* nocapture, i32) #0
10 declare i32* @realloc(i32*, i32)
11
12 ; Test deliberately wrong declaration
13 declare i32 @strcpy(...)
14
15 ; CHECK-NOT: strcpy{{.*}}noalias
16 ; CHECK-NOT: strcpy{{.*}}nocapture
17 ; CHECK-NOT: strcpy{{.*}}nounwind
18 ; CHECK-NOT: strcpy{{.*}}readonly
19
20 ; CHECK: attributes #0 = { nounwind }
21 ; CHECK: attributes #1 = { nounwind readonly }