| ## This checks the number of inlined variables with 0% location |
| ## coverage in split dwarf cases. |
| ## $ cat test1.cpp |
| ## __attribute__((optnone)) static void x() { |
| ## } |
| ## __attribute__((always_inline)) static void y() { |
| ## int var; |
| ## x(); |
| ## } |
| ## void f1() { |
| ## y(); |
| ## } |
| ## |
| ## $ cat test2.cpp |
| ## __attribute__((optnone)) static void x() { |
| ## } |
| ## __attribute__((always_inline)) static void y() { |
| ## int var; |
| ## x(); |
| ## } |
| ## void f1(); |
| ## int main() { |
| ## f1(); |
| ## y(); |
| ## } |
| ## $ clang++ -O1 -g -gsplit-dwarf test2.cpp test1.cpp -S |
| ## The split-dwarf.s was handcrafted. |
| |
| REQUIRES: x86_64-linux |
| RUN: rm -rf %t |
| RUN: mkdir %t |
| RUN: cd %t |
| RUN: llvm-mc -triple x86_64-unknown-linux -filetype=obj %S/Inputs/split-dwarf-objfile1.s -o test1.dwo |
| RUN: llvm-mc -triple x86_64-unknown-linux -filetype=obj %S/Inputs/split-dwarf-objfile2.s -o test2.dwo |
| RUN: llvm-mc -triple x86_64-unknown-linux -filetype=obj %S/Inputs/split-dwarf.s -o split-dwarf.o |
| RUN: llvm-dwarfdump --statistics split-dwarf.o | FileCheck %s |
| |
| CHECK: "#variables processed by location statistics": 2 |
| CHECK: "#variables with 0% of parent scope covered by DW_AT_location": 2 |
| CHECK: "#local vars processed by location statistics": 2 |
| CHECK: "#local vars with 0% of parent scope covered by DW_AT_location": 2 |