Instructions to reproduce
-------------------------

$ cat main.cpp
void __attribute__((optnone)) func2() {}
void __attribute__((noinline)) func1() { func2(); /* tail */ }
int __attribute__((disable_tail_calls)) main() {
  func1(); /* regular */
  return 0;
}

# Adding `-isysroot $(xcrun -sdk iphoneos.internal -show-sdk-path)` can fix
# linker warnings when building on macOS.
$ clang -arch arm64 main.cpp -o main.arm64.o -c -g -O2
$ clang -arch arm64 main.arm64.o -o main.arm64 -g

RUN: dsymutil -oso-prepend-path %p/../Inputs %p/../Inputs/private/tmp/call_pc/main.arm64 -o %t.dSYM
RUN: llvm-dwarfdump %t.dSYM | FileCheck %s -implicit-check-not=DW_AT_call_pc

CHECK: DW_AT_call_pc (0x0000000100007f94)
