Files
archived-llvm/test/DebugInfo/Inputs/split-dwarf-dwp.cpp
David Blaikie 61dba579be DebugInfo: Test & handle (differently) non-zero DW_AT_ranges_base
Followup to r309570, fixing it slightly differently (ranges_base and
addr_base should never be read from a DWO file - so there shouldn't be
any issue with 'overriding' the values - conditionalize the code and
assert that the values aren't being overriden).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@309879 91177308-0d34-0410-b5e6-96231b3b80d8
2017-08-02 20:16:22 +00:00

23 lines
868 B
C++

__attribute__((optnone)) void f1() {}
inline __attribute__((always_inline)) void f2() {
f1();
}
// throw a gap in the address range to force use of DW_AT_ranges, ranges_base,
// range contribution in the .dwo file, etc.
__attribute__((nodebug)) void gap() {
}
int main() {
f2();
}
// To produce split-dwarf-dwp.o{,dwp}, Create another file that has ranges, so
// the ranges_base of the CU for split-dwarf-dwp.cpp is non-zero.
//
// $ cat > other.cpp
// void other1() {}
// __attribute__((nodebug)) void other2() {}
// void other3() {}
// $ clang++ other.cpp split-dwarf-dwp.cpp -gsplit-dwarf -c -Xclang -fdebug-compilation-dir -Xclang Output -fno-split-dwarf-inlining
// $ llvm-dwp other.dwo other.dwo split-dwarf-dwp.dwo -o test/DebugInfo/Inputs/split-dwarf-dwp.o.dwp
// $ ld -r other.o split-dwarf-dwp.o -o test/DebugInfo/Inputs/split-dwarf-dwp.o