Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / Transforms / Attributor / new_attributes.ll
blob6b432fcbe63fb6f4846502f48456ef16b1148160
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --check-attributes --check-globals
2 ; RUN: opt < %s -passes=attributor -attributor-annotate-decl-cs   -S | FileCheck %s
4 ; CHECK-NOT: Function
5 ; CHECK: declare i32 @foo1()
6 ; CHECK-NOT: Function
7 ; CHECK: declare i32 @foo2()
8 ; CHECK-NOT: Function
9 ; CHECK: declare i32 @foo3()
10 declare i32 @foo1()
11 declare i32 @foo2()
12 declare i32 @foo3()
14 define internal i32 @bar() {
15 ; CHECK-LABEL: define {{[^@]+}}@bar() {
16 ; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @foo1()
17 ; CHECK-NEXT:    [[TMP2:%.*]] = call i32 @foo2()
18 ; CHECK-NEXT:    [[TMP3:%.*]] = call i32 @foo3()
19 ; CHECK-NEXT:    ret i32 undef
21   %1 = call i32 @foo1()
22   %2 = call i32 @foo2()
23   %3 = call i32 @foo3()
24   ret i32 1
27 define i32 @baz() {
28 ; CHECK-LABEL: define {{[^@]+}}@baz() {
29 ; CHECK-NEXT:    [[TMP1:%.*]] = call i32 @bar()
30 ; CHECK-NEXT:    ret i32 0
32   %1 = call i32 @bar()
33   ret i32 0
36 ; We should never derive anything here
37 ; CHECK-NOT: attributes