diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c index 2e7e773e5c394..0a02c8f8ee921 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c +++ b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c @@ -254,7 +254,7 @@ int main(int argc, const char *argv[]) { conditional_operator(); do_fallthrough(); static_func(); - extern void __llvm_profile_write_file(); - __llvm_profile_write_file(); + (void)0; + (void)0; return 0; } diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.proftext b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.proftext index 508b0fef94a06..1e74192304fee 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.proftext +++ b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.proftext @@ -162,10 +162,9 @@ main # Func Hash: 24 # Num Counters: -2 +1 # Counter Values: 1 -0 simple_loops # Func Hash: diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.yaml index dbb9b5822a442..5752fa3b613ca 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.yaml @@ -1,21 +1,22 @@ --- !ELF FileHeader: - Class: ELFCLASS32 + Class: ELFCLASS64 Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] + Machine: EM_X86_64 SectionHeaderStringTable: .strtab Sections: - - Name: '__llvm_covfun (7)' + - Name: __llvm_covfun Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: simple_loops Signature: 0x46D109C4436D1 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 0 }, { Ref: 2 } ] @@ -35,15 +36,17 @@ Sections: - { File: 0, dLoc: [ 1, 6, 0, 8 ], Add: 3 } - { File: 0, dLoc: [ 0, 16, 0, 24 ], Add: 3 } - { File: 0, dLoc: [ 0, 16, 0, 24 ], Branch: { True: { Ref: 3 }, False: { Ref: 0 } } } - - Name: '__llvm_covfun (4)' + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (1)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: conditionals Signature: 0x44113C165835D352 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 1 }, { Ref: 2 } ] @@ -96,29 +99,32 @@ Sections: - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 6 }, False: { Sub: 15 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 6 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 6 } - - { File: 0, dLoc: [ 3, 9, 0, 10 ], Ref: 1 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 9, 0, 10 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 15 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Zero: { } }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 8 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 0, 14, 0, 15 ], Ref: 8 } - { File: 0, dLoc: [ 0, 14, 0, 15 ], Branch: { True: { Ref: 9 }, False: { Sub: 18 } } } - { File: 0, dLoc: [ 0, 16, 0, 17 ], isGap: true, Ref: 7 } - { File: 0, dLoc: [ 0, 17, 0, 19 ], Ref: 7 } - { File: 0, dLoc: [ 1, 9, 0, 10 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 15 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Zero: { } }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Zero: { } }, False: { Ref: 11 } } } - { File: 0, dLoc: [ 0, 14, 0, 15 ], Ref: 11 } - { File: 0, dLoc: [ 0, 14, 0, 15 ], Branch: { True: { Sub: 19 }, False: { Ref: 12 } } } - { File: 0, dLoc: [ 0, 16, 0, 17 ], isGap: true, Ref: 10 } - { File: 0, dLoc: [ 0, 17, 0, 19 ], Ref: 10 } - - Name: '__llvm_covfun (5)' + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (2)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: early_exits Signature: 0x27F9134B0E2D5C3D - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Add: 2 }, { Ref: 3 } ] @@ -133,28 +139,29 @@ Sections: - [ { Ref: 0 }, { Ref: 5 } ] - [ { Ref: 0 }, { Ref: 6 } ] - [ { Ref: 0 }, { Ref: 6 } ] - - [ { Add: 22 }, { Ref: 7 } ] + - [ { Add: 20 }, { Ref: 7 } ] - [ { Ref: 0 }, { Ref: 6 } ] - - [ { Add: 22 }, { Ref: 7 } ] + - [ { Add: 20 }, { Ref: 7 } ] - [ { Ref: 0 }, { Ref: 6 } ] - - [ { Add: 22 }, { Ref: 7 } ] + - [ { Add: 20 }, { Ref: 7 } ] - [ { Ref: 0 }, { Ref: 6 } ] - - [ { Add: 22 }, { Ref: 7 } ] - - [ { Ref: 0 }, { Ref: 6 } ] - - [ { Add: 22 }, { Ref: 7 } ] + - [ { Add: 20 }, { Ref: 7 } ] - [ { Ref: 0 }, { Ref: 6 } ] - [ { Ref: 0 }, { Ref: 7 } ] - [ { Ref: 0 }, { Ref: 7 } ] - [ { Ref: 0 }, { Ref: 7 } ] - - [ { Sub: 27 }, { Ref: 8 } ] + - [ { Ref: 0 }, { Ref: 7 } ] + - [ { Sub: 26 }, { Ref: 8 } ] - [ { Ref: 0 }, { Ref: 7 } ] Records: - { File: 0, dLoc: [ 33, 20, 24, 2 ], Ref: 0 } - - { File: 0, dLoc: [ 3, 7, 0, 8 ], Ref: 0 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 0 } - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 0, 10, 0, 12 ], Ref: 1 } - - { File: 0, dLoc: [ 2, 10, 0, 17 ], Sub: 1 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 10, 0, 17 ], Sub: 1 } - { File: 0, dLoc: [ 0, 10, 0, 17 ], Branch: { True: { Ref: 2 }, False: { Sub: 3 } } } - { File: 0, dLoc: [ 0, 18, 0, 19 ], isGap: true, Ref: 2 } - { File: 0, dLoc: [ 0, 19, 6, 4 ], Ref: 2 } @@ -162,40 +169,45 @@ Sections: - { File: 0, dLoc: [ 0, 9, 0, 15 ], Branch: { True: { Ref: 3 }, False: { Sub: 9 } } } - { File: 0, dLoc: [ 0, 16, 1, 7 ], isGap: true, Ref: 3 } - { File: 0, dLoc: [ 1, 7, 0, 12 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 12, 1, 5 ], isGap: true, Sub: 9 } + - { File: 0, dLoc: [ 0, 13, 1, 5 ], isGap: true, Sub: 9 } - { File: 0, dLoc: [ 1, 5, 2, 4 ], Sub: 9 } - { File: 0, dLoc: [ 0, 9, 0, 14 ], Sub: 9 } - { File: 0, dLoc: [ 0, 9, 0, 14 ], Branch: { True: { Ref: 4 }, False: { Sub: 8 } } } - { File: 0, dLoc: [ 0, 15, 1, 7 ], isGap: true, Ref: 4 } - { File: 0, dLoc: [ 1, 7, 0, 15 ], Ref: 4 } - - { File: 0, dLoc: [ 3, 7, 0, 8 ], Ref: 0 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 0 } - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 5 }, False: { Sub: 10 } } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], isGap: true, Ref: 5 } - { File: 0, dLoc: [ 0, 10, 0, 12 ], Ref: 5 } - - { File: 0, dLoc: [ 2, 6, 5, 4 ], Add: 22 } - - { File: 0, dLoc: [ 1, 9, 0, 15 ], Add: 22 } - - { File: 0, dLoc: [ 0, 9, 0, 15 ], Branch: { True: { Ref: 7 }, False: { Sub: 21 } } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 6, 5, 4 ], Add: 20 } + - { File: 0, dLoc: [ 1, 9, 0, 15 ], Add: 20 } + - { File: 0, dLoc: [ 0, 9, 0, 15 ], Branch: { True: { Ref: 7 }, False: { Sub: 19 } } } - { File: 0, dLoc: [ 0, 16, 1, 7 ], isGap: true, Ref: 7 } - { File: 0, dLoc: [ 1, 7, 0, 13 ], Ref: 7 } - - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Sub: 21 } - - { File: 0, dLoc: [ 0, 14, 2, 7 ], isGap: true, Sub: 21 } - - { File: 0, dLoc: [ 2, 7, 0, 10 ], Sub: 21 } - - { File: 0, dLoc: [ 1, 12, 0, 19 ], Sub: 21 } - - { File: 0, dLoc: [ 0, 12, 0, 19 ], Branch: { True: { Ref: 6 }, False: { Sub: 27 } } } - - { File: 0, dLoc: [ 2, 3, 2, 2 ], Sub: 27 } - - { File: 0, dLoc: [ 0, 7, 0, 8 ], Sub: 27 } - - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 8 }, False: { Sub: 26 } } } + - { File: 0, dLoc: [ 0, 14, 2, 7 ], isGap: true, Sub: 19 } + - { File: 0, dLoc: [ 2, 7, 0, 10 ], Sub: 19 } + - { File: 0, dLoc: [ 1, 12, 0, 19 ], Sub: 19 } + - { File: 0, dLoc: [ 0, 12, 0, 19 ], Branch: { True: { Ref: 6 }, False: { Sub: 26 } } } + - { File: 0, dLoc: [ 0, 21, 2, 3 ], isGap: true, Sub: 26 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 2, 2 ], Sub: 26 } + - { File: 0, dLoc: [ 0, 7, 0, 8 ], Sub: 26 } + - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 8 }, False: { Sub: 25 } } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], isGap: true, Ref: 8 } - { File: 0, dLoc: [ 0, 10, 0, 12 ], Ref: 8 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } - Name: '__llvm_covfun (3)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: jumps Signature: 0xD0E163345D499C1B - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Zero: { } }, { Ref: 2 } ] @@ -203,51 +215,63 @@ Sections: - [ { Ref: 6 }, { Ref: 5 } ] - [ { Ref: 6 }, { Ref: 7 } ] - [ { Ref: 6 }, { Ref: 5 } ] + - [ { Ref: 6 }, { Ref: 5 } ] - [ { Ref: 10 }, { Ref: 11 } ] - [ { Ref: 10 }, { Ref: 11 } ] - [ { Ref: 10 }, { Ref: 11 } ] - - [ { Add: 28 }, { Ref: 11 } ] + - [ { Add: 32 }, { Ref: 11 } ] - [ { Ref: 10 }, { Ref: 14 } ] - - [ { Sub: 18 }, { Ref: 12 } ] - - [ { Add: 28 }, { Ref: 11 } ] + - [ { Sub: 22 }, { Ref: 12 } ] + - [ { Add: 32 }, { Ref: 11 } ] - [ { Ref: 10 }, { Ref: 14 } ] - - [ { Ref: 16 }, { Ref: 17 } ] - - [ { Ref: 15 }, { Ref: 17 } ] - - [ { Ref: 15 }, { Ref: 16 } ] - - [ { Sub: 18 }, { Ref: 12 } ] - - [ { Add: 28 }, { Ref: 11 } ] + - [ { Sub: 16 }, { Ref: 17 } ] + - [ { Sub: 17 }, { Ref: 16 } ] + - [ { Ref: 13 }, { Ref: 15 } ] + - [ { Sub: 22 }, { Ref: 12 } ] + - [ { Add: 32 }, { Ref: 11 } ] + - [ { Ref: 10 }, { Ref: 14 } ] + - [ { Sub: 22 }, { Ref: 12 } ] + - [ { Add: 32 }, { Ref: 11 } ] - [ { Ref: 10 }, { Ref: 14 } ] - - [ { Sub: 26 }, { Ref: 12 } ] - - [ { Add: 27 }, { Ref: 11 } ] - - [ { Add: 28 }, { Ref: 20 } ] + - [ { Sub: 30 }, { Ref: 12 } ] + - [ { Add: 31 }, { Ref: 11 } ] + - [ { Add: 32 }, { Ref: 20 } ] - [ { Ref: 10 }, { Ref: 14 } ] - - [ { Sub: 25 }, { Ref: 18 } ] - - [ { Sub: 26 }, { Ref: 12 } ] - - [ { Add: 27 }, { Ref: 11 } ] - - [ { Add: 28 }, { Ref: 20 } ] + - [ { Sub: 29 }, { Ref: 18 } ] + - [ { Sub: 30 }, { Ref: 12 } ] + - [ { Add: 31 }, { Ref: 11 } ] + - [ { Add: 32 }, { Ref: 20 } ] - [ { Ref: 10 }, { Ref: 14 } ] - [ { Zero: { } }, { Ref: 19 } ] - [ { Ref: 20 }, { Ref: 21 } ] Records: - { File: 0, dLoc: [ 59, 14, 47, 2 ], Ref: 0 } - - { File: 0, dLoc: [ 3, 15, 0, 20 ], Ref: 0 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 15, 0, 20 ], Ref: 0 } - { File: 0, dLoc: [ 0, 15, 0, 20 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } - { File: 0, dLoc: [ 0, 22, 0, 25 ], Zero: { } } - { File: 0, dLoc: [ 0, 26, 0, 27 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 0, 27, 4, 4 ], Ref: 1 } - - { File: 0, dLoc: [ 3, 5, 1, 4 ], Zero: { } } + - { File: 0, dLoc: [ 1, 20, 2, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 1, 0, 35 ], Skip: { } } + - { File: 0, dLoc: [ 1, 5, 1, 4 ], Zero: { } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], Zero: { } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 } } } - { File: 0, dLoc: [ 0, 11, 0, 12 ], isGap: true, Ref: 2 } - { File: 0, dLoc: [ 0, 12, 0, 14 ], Ref: 2 } - - { File: 0, dLoc: [ 3, 1, 3, 13 ], Ref: 3 } + - { File: 0, dLoc: [ 1, 4, 2, 1 ], isGap: true, Sub: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 1, 3, 13 ], Ref: 3 } - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 3 } - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 4 }, False: { Sub: 2 } } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], isGap: true, Ref: 4 } - { File: 0, dLoc: [ 0, 10, 0, 12 ], Ref: 4 } - - { File: 0, dLoc: [ 4, 3, 33, 2 ], Zero: { } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 14, 2, 3 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 33, 2 ], Zero: { } } - { File: 0, dLoc: [ 0, 10, 0, 11 ], Ref: 6 } - - { File: 0, dLoc: [ 0, 10, 0, 11 ], Branch: { True: { Ref: 5 }, False: { Sub: 5 } } } + - { File: 0, dLoc: [ 0, 10, 0, 11 ], Branch: { True: { Ref: 5 }, False: { Sub: 6 } } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], isGap: true, Ref: 5 } - { File: 0, dLoc: [ 0, 13, 3, 4 ], Ref: 5 } - { File: 0, dLoc: [ 1, 3, 2, 4 ], Ref: 6 } @@ -255,55 +279,65 @@ Sections: - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 7 }, False: { Sub: 4 } } } - { File: 0, dLoc: [ 0, 11, 0, 12 ], isGap: true, Ref: 7 } - { File: 0, dLoc: [ 0, 12, 0, 14 ], Ref: 7 } - - { File: 0, dLoc: [ 3, 3, 0, 13 ], Sub: 5 } - - { File: 0, dLoc: [ 0, 13, 1, 1 ], isGap: true, Ref: 8 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 0, 13 ], Sub: 6 } + - { File: 0, dLoc: [ 0, 14, 1, 1 ], isGap: true, Sub: 6 } - { File: 0, dLoc: [ 1, 1, 27, 2 ], Ref: 8 } - { File: 0, dLoc: [ 1, 1, 26, 2 ], Ref: 9 } - { File: 0, dLoc: [ 1, 1, 25, 2 ], Ref: 10 } - { File: 0, dLoc: [ 2, 7, 0, 12 ], Ref: 10 } - - { File: 0, dLoc: [ 0, 7, 0, 12 ], Branch: { True: { Ref: 11 }, False: { Sub: 8 } } } + - { File: 0, dLoc: [ 0, 7, 0, 12 ], Branch: { True: { Ref: 11 }, False: { Sub: 9 } } } - { File: 0, dLoc: [ 0, 13, 1, 5 ], isGap: true, Ref: 11 } - { File: 0, dLoc: [ 1, 5, 0, 15 ], Ref: 11 } - - { File: 0, dLoc: [ 0, 15, 2, 3 ], isGap: true, Sub: 8 } - - { File: 0, dLoc: [ 2, 3, 20, 2 ], Sub: 8 } - - { File: 0, dLoc: [ 0, 10, 0, 15 ], Sub: 18 } - - { File: 0, dLoc: [ 0, 10, 0, 15 ], Branch: { True: { Ref: 12 }, False: { Sub: 17 } } } + - { File: 0, dLoc: [ 0, 16, 2, 3 ], isGap: true, Sub: 9 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 20, 2 ], Sub: 9 } + - { File: 0, dLoc: [ 0, 10, 0, 15 ], Sub: 22 } + - { File: 0, dLoc: [ 0, 10, 0, 15 ], Branch: { True: { Ref: 12 }, False: { Sub: 21 } } } - { File: 0, dLoc: [ 0, 16, 0, 17 ], isGap: true, Ref: 12 } - { File: 0, dLoc: [ 0, 17, 10, 4 ], Ref: 12 } - { File: 0, dLoc: [ 1, 3, 9, 4 ], Ref: 13 } - - { File: 0, dLoc: [ 1, 16, 6, 17 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 13, 0, 14 ], Branch: { True: { Zero: { } }, False: { Sub: 15 } } } + - { File: 0, dLoc: [ 0, 16, 6, 17 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 5, 1, 17 ], Ref: 15 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 15 }, False: { Add: 14 } } } - - { File: 0, dLoc: [ 2, 5, 1, 18 ], Ref: 16 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 16 }, False: { Add: 15 } } } - - { File: 0, dLoc: [ 2, 5, 1, 17 ], Ref: 17 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 17 }, False: { Add: 16 } } } - - { File: 0, dLoc: [ 5, 3, 8, 2 ], Sub: 17 } - - { File: 0, dLoc: [ 0, 15, 0, 21 ], Sub: 25 } - - { File: 0, dLoc: [ 0, 15, 0, 21 ], Branch: { True: { Ref: 18 }, False: { Sub: 24 } } } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 15 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 1, 18, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 1, 18 ], Ref: 16 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 16 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 1, 19, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 1, 17 ], Ref: 17 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 17 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 3, 4, 2, 3 ], isGap: true, Sub: 21 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 8, 2 ], Sub: 21 } + - { File: 0, dLoc: [ 0, 15, 0, 21 ], Sub: 29 } + - { File: 0, dLoc: [ 0, 15, 0, 21 ], Branch: { True: { Ref: 18 }, False: { Sub: 28 } } } - { File: 0, dLoc: [ 0, 23, 0, 26 ], Ref: 20 } - { File: 0, dLoc: [ 0, 27, 0, 28 ], isGap: true, Ref: 18 } - { File: 0, dLoc: [ 0, 28, 6, 4 ], Ref: 18 } - - { File: 0, dLoc: [ 1, 20, 3, 3 ], isGap: true, Ref: 20 } - - { File: 0, dLoc: [ 2, 5, 3, 4 ], Zero: { } } + - { File: 0, dLoc: [ 1, 21, 2, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 1, 0, 35 ], Skip: { } } + - { File: 0, dLoc: [ 1, 5, 3, 4 ], Zero: { } } - { File: 0, dLoc: [ 0, 9, 0, 10 ], Zero: { } } - - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 19 }, False: { Sub: 29 } } } + - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 19 }, False: { Sub: 33 } } } - { File: 0, dLoc: [ 0, 11, 0, 12 ], isGap: true, Ref: 19 } - { File: 0, dLoc: [ 0, 12, 0, 14 ], Ref: 19 } - { File: 0, dLoc: [ 1, 3, 2, 4 ], Ref: 20 } - { File: 0, dLoc: [ 1, 9, 0, 10 ], Ref: 20 } - - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 21 }, False: { Sub: 30 } } } + - { File: 0, dLoc: [ 0, 9, 0, 10 ], Branch: { True: { Ref: 21 }, False: { Sub: 34 } } } - { File: 0, dLoc: [ 0, 11, 0, 12 ], isGap: true, Ref: 21 } - { File: 0, dLoc: [ 0, 12, 0, 14 ], Ref: 21 } - - Name: '__llvm_covfun (9)' + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (4)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: switches Signature: 0x99A0C98383683E - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Add: 1 }, { Ref: 14 } ] - [ { Add: 2 }, { Ref: 9 } ] @@ -311,150 +345,112 @@ Sections: - [ { Add: 0 }, { Ref: 3 } ] - [ { Add: 5 }, { Ref: 14 } ] - [ { Ref: 4 }, { Ref: 9 } ] - - [ { Add: 7 }, { Ref: 16 } ] - - [ { Add: 8 }, { Ref: 11 } ] - - [ { Ref: 7 }, { Ref: 9 } ] - [ { Ref: 5 }, { Ref: 6 } ] - [ { Ref: 5 }, { Ref: 7 } ] - - [ { Add: 12 }, { Ref: 16 } ] - - [ { Add: 13 }, { Ref: 11 } ] - - [ { Ref: 5 }, { Ref: 9 } ] - [ { Ref: 5 }, { Ref: 7 } ] - - [ { Add: 29 }, { Ref: 8 } ] - - [ { Ref: 5 }, { Ref: 7 } ] - - [ { Add: 18 }, { Ref: 16 } ] - - [ { Add: 29 }, { Ref: 11 } ] + - [ { Add: 10 }, { Ref: 8 } ] - [ { Ref: 5 }, { Ref: 7 } ] - [ { Ref: 9 }, { Ref: 10 } ] - - [ { Add: 28 }, { Ref: 16 } ] - - [ { Add: 29 }, { Ref: 9 } ] - - [ { Ref: 5 }, { Ref: 7 } ] - [ { Ref: 11 }, { Ref: 12 } ] + - [ { Ref: 11 }, { Ref: 14 } ] - [ { Ref: 14 }, { Ref: 15 } ] - [ { Ref: 13 }, { Ref: 16 } ] - - [ { Add: 28 }, { Ref: 11 } ] - - [ { Add: 29 }, { Ref: 9 } ] - - [ { Ref: 5 }, { Ref: 7 } ] - [ { Ref: 13 }, { Ref: 16 } ] - - [ { Add: 32 }, { Ref: 17 } ] + - [ { Add: 18 }, { Ref: 17 } ] - [ { Ref: 13 }, { Ref: 16 } ] - [ { Add: 0 }, { Ref: 3 } ] - [ { Add: 0 }, { Ref: 3 } ] - - [ { Sub: 36 }, { Ref: 18 } ] + - [ { Add: 0 }, { Ref: 3 } ] + - [ { Sub: 23 }, { Ref: 18 } ] - [ { Add: 0 }, { Ref: 3 } ] Records: - { File: 0, dLoc: [ 108, 17, 37, 2 ], Ref: 0 } - - { File: 0, dLoc: [ 4, 23, 2, 10 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 2, 1, 1, 28 ], Skip: { } } + - { File: 0, dLoc: [ 2, 23, 2, 10 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 3, 1, 10 ], Ref: 2 } - { File: 0, dLoc: [ 0, 3, 0, 10 ], Branch: { True: { Ref: 2 }, False: { Zero: { } } } } - - { File: 0, dLoc: [ 1, 10, 3, 3 ], isGap: true, Ref: 1 } - - { File: 0, dLoc: [ 3, 3, 28, 2 ], Ref: 1 } + - { File: 0, dLoc: [ 2, 4, 2, 3 ], isGap: true, Ref: 1 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 28, 2 ], Ref: 1 } - { File: 0, dLoc: [ 0, 63, 0, 70 ], Add: 0 } - - { File: 0, dLoc: [ 0, 63, 0, 70 ], Branch: { True: { Ref: 3 }, False: { Sub: 36 } } } + - { File: 0, dLoc: [ 0, 63, 0, 70 ], Branch: { True: { Ref: 3 }, False: { Sub: 23 } } } - { File: 0, dLoc: [ 0, 72, 0, 75 ], Add: 4 } - { File: 0, dLoc: [ 0, 76, 0, 77 ], isGap: true, Ref: 3 } - { File: 0, dLoc: [ 0, 77, 23, 4 ], Ref: 3 } - { File: 0, dLoc: [ 1, 25, 20, 15 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 5, 19, 15 ], Ref: 5 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 5 }, False: { Add: 6 } } } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 5 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 5 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 6 }, False: { Sub: 9 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 6 }, False: { Sub: 6 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 6 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 6 } - - { File: 0, dLoc: [ 2, 5, 2, 12 ], Add: 29 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 7 }, False: { Add: 11 } } } - - { File: 0, dLoc: [ 1, 11, 0, 12 ], Add: 29 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 8 }, False: { Sub: 15 } } } + - { File: 0, dLoc: [ 1, 1, 0, 21 ], Skip: { } } + - { File: 0, dLoc: [ 1, 5, 2, 12 ], Add: 10 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 7 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 1, 11, 0, 12 ], Add: 10 } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 8 }, False: { Sub: 9 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 8 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 8 } - - { File: 0, dLoc: [ 2, 5, 2, 15 ], Ref: 9 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 9 }, False: { Add: 17 } } } + - { File: 0, dLoc: [ 1, 13, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 2, 15 ], Ref: 9 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 9 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 9 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 10 }, False: { Sub: 20 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 10 }, False: { Sub: 11 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 10 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 10 } - - { File: 0, dLoc: [ 2, 5, 10, 15 ], Ref: 11 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 11 }, False: { Add: 21 } } } + - { File: 0, dLoc: [ 1, 16, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 10, 15 ], Ref: 11 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 11 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 11 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 12 }, False: { Sub: 24 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 12 }, False: { Sub: 12 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 12 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 12 } - - { File: 0, dLoc: [ 1, 18, 3, 17 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 15, 0, 16 ], Branch: { True: { Zero: { } }, False: { Sub: 13 } } } + - { File: 0, dLoc: [ 0, 18, 3, 17 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 7, 2, 17 ], Ref: 14 } - { File: 0, dLoc: [ 0, 7, 0, 19 ], Branch: { True: { Ref: 14 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 13, 0, 14 ], Ref: 14 } - - { File: 0, dLoc: [ 0, 13, 0, 14 ], Branch: { True: { Ref: 15 }, False: { Sub: 25 } } } + - { File: 0, dLoc: [ 0, 13, 0, 14 ], Branch: { True: { Ref: 15 }, False: { Sub: 14 } } } - { File: 0, dLoc: [ 0, 15, 0, 16 ], isGap: true, Ref: 15 } - { File: 0, dLoc: [ 0, 16, 0, 18 ], Ref: 15 } - - { File: 0, dLoc: [ 1, 17, 3, 5 ], isGap: true, Ref: 13 } - - { File: 0, dLoc: [ 3, 5, 2, 15 ], Add: 32 } - - { File: 0, dLoc: [ 0, 5, 2, 15 ], Ref: 13 } - - { File: 0, dLoc: [ 0, 5, 0, 12 ], Branch: { True: { Ref: 16 }, False: { Add: 27 } } } - - { File: 0, dLoc: [ 1, 11, 0, 23 ], Add: 32 } - - { File: 0, dLoc: [ 0, 11, 0, 23 ], Branch: { True: { Ref: 17 }, False: { Sub: 31 } } } + - { File: 0, dLoc: [ 2, 8, 2, 5 ], isGap: true, Ref: 13 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 5, 2, 15 ], Add: 18 } + - { File: 0, dLoc: [ 0, 5, 0, 12 ], Branch: { True: { Ref: 16 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 1, 11, 0, 23 ], Add: 18 } + - { File: 0, dLoc: [ 0, 11, 0, 23 ], Branch: { True: { Ref: 17 }, False: { Sub: 17 } } } - { File: 0, dLoc: [ 0, 24, 1, 9 ], isGap: true, Ref: 17 } - { File: 0, dLoc: [ 1, 9, 0, 15 ], Ref: 17 } - - { File: 0, dLoc: [ 5, 3, 2, 2 ], Sub: 36 } - - { File: 0, dLoc: [ 0, 7, 0, 17 ], Sub: 36 } - - { File: 0, dLoc: [ 0, 7, 0, 17 ], Branch: { True: { Ref: 18 }, False: { Sub: 35 } } } + - { File: 0, dLoc: [ 2, 4, 3, 3 ], isGap: true, Sub: 23 } + - { File: 0, dLoc: [ 1, 1, 1, 33 ], Skip: { } } + - { File: 0, dLoc: [ 2, 3, 2, 2 ], Sub: 23 } + - { File: 0, dLoc: [ 0, 7, 0, 17 ], Sub: 23 } + - { File: 0, dLoc: [ 0, 7, 0, 17 ], Branch: { True: { Ref: 18 }, False: { Sub: 22 } } } - { File: 0, dLoc: [ 0, 18, 0, 19 ], isGap: true, Ref: 18 } - { File: 0, dLoc: [ 0, 19, 0, 21 ], Ref: 18 } - - Name: '__llvm_covfun (8)' + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (5)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: big_switch Signature: 0xB6695A86B856FFD6 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 2 } ] - [ { Add: 0 }, { Ref: 1 } ] - - [ { Add: 3 }, { Ref: 15 } ] - - [ { Add: 4 }, { Ref: 13 } ] - - [ { Add: 5 }, { Ref: 11 } ] - - [ { Add: 6 }, { Ref: 9 } ] - - [ { Ref: 5 }, { Ref: 7 } ] - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 3 }, { Ref: 5 } ] - - [ { Add: 10 }, { Ref: 15 } ] - - [ { Add: 11 }, { Ref: 13 } ] - - [ { Add: 12 }, { Ref: 11 } ] - - [ { Add: 13 }, { Ref: 9 } ] - - [ { Ref: 3 }, { Ref: 7 } ] - [ { Ref: 3 }, { Ref: 5 } ] - - [ { Add: 45 }, { Ref: 6 } ] - - [ { Ref: 3 }, { Ref: 5 } ] - - [ { Add: 18 }, { Ref: 15 } ] - - [ { Add: 19 }, { Ref: 13 } ] - - [ { Add: 20 }, { Ref: 11 } ] - - [ { Add: 45 }, { Ref: 9 } ] + - [ { Add: 6 }, { Ref: 6 } ] - [ { Ref: 3 }, { Ref: 5 } ] - [ { Ref: 7 }, { Ref: 8 } ] - - [ { Add: 24 }, { Ref: 15 } ] - - [ { Add: 25 }, { Ref: 13 } ] - - [ { Add: 44 }, { Ref: 11 } ] - - [ { Add: 45 }, { Ref: 7 } ] - - [ { Ref: 3 }, { Ref: 5 } ] - [ { Ref: 9 }, { Ref: 10 } ] - - [ { Add: 30 }, { Ref: 15 } ] - - [ { Add: 43 }, { Ref: 13 } ] - - [ { Add: 44 }, { Ref: 9 } ] - - [ { Add: 45 }, { Ref: 7 } ] - - [ { Ref: 3 }, { Ref: 5 } ] - [ { Ref: 11 }, { Ref: 12 } ] - - [ { Add: 42 }, { Ref: 15 } ] - - [ { Add: 43 }, { Ref: 11 } ] - - [ { Add: 44 }, { Ref: 9 } ] - - [ { Add: 45 }, { Ref: 7 } ] - - [ { Ref: 3 }, { Ref: 5 } ] - [ { Ref: 13 }, { Ref: 14 } ] - - [ { Add: 42 }, { Ref: 13 } ] - - [ { Add: 43 }, { Ref: 11 } ] - - [ { Add: 44 }, { Ref: 9 } ] - - [ { Add: 45 }, { Ref: 7 } ] - - [ { Ref: 3 }, { Ref: 5 } ] - [ { Ref: 15 }, { Ref: 16 } ] Records: - { File: 0, dLoc: [ 147, 19, 31, 2 ], Ref: 0 } @@ -465,56 +461,66 @@ Sections: - { File: 0, dLoc: [ 0, 32, 28, 4 ], Ref: 1 } - { File: 0, dLoc: [ 1, 21, 25, 12 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 5, 24, 12 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 5, 0, 18 ], Branch: { True: { Ref: 3 }, False: { Add: 2 } } } + - { File: 0, dLoc: [ 0, 5, 0, 18 ], Branch: { True: { Ref: 3 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 4 }, False: { Sub: 7 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 4 }, False: { Sub: 2 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 4 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 4 } - - { File: 0, dLoc: [ 2, 5, 2, 12 ], Add: 45 } - - { File: 0, dLoc: [ 0, 5, 0, 18 ], Branch: { True: { Ref: 5 }, False: { Add: 9 } } } - - { File: 0, dLoc: [ 1, 11, 0, 12 ], Add: 45 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 6 }, False: { Sub: 15 } } } + - { File: 0, dLoc: [ 1, 1, 0, 21 ], Skip: { } } + - { File: 0, dLoc: [ 1, 5, 2, 12 ], Add: 6 } + - { File: 0, dLoc: [ 0, 5, 0, 18 ], Branch: { True: { Ref: 5 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 1, 11, 0, 12 ], Add: 6 } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 6 }, False: { Sub: 5 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 6 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 6 } - - { File: 0, dLoc: [ 2, 5, 2, 12 ], Ref: 7 } - - { File: 0, dLoc: [ 0, 5, 0, 32 ], Branch: { True: { Ref: 7 }, False: { Add: 17 } } } + - { File: 0, dLoc: [ 1, 13, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 2, 12 ], Ref: 7 } + - { File: 0, dLoc: [ 0, 5, 0, 32 ], Branch: { True: { Ref: 7 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 7 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 8 }, False: { Sub: 22 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 8 }, False: { Sub: 7 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 8 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 8 } - - { File: 0, dLoc: [ 4, 5, 2, 12 ], Ref: 9 } - - { File: 0, dLoc: [ 0, 5, 0, 19 ], Branch: { True: { Ref: 9 }, False: { Add: 23 } } } + - { File: 0, dLoc: [ 1, 13, 3, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 1, 1, 1 ], Skip: { } } + - { File: 0, dLoc: [ 2, 5, 2, 12 ], Ref: 9 } + - { File: 0, dLoc: [ 0, 5, 0, 19 ], Branch: { True: { Ref: 9 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 9 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 10 }, False: { Sub: 28 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 10 }, False: { Sub: 8 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 10 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 10 } - - { File: 0, dLoc: [ 2, 5, 2, 12 ], Ref: 11 } - - { File: 0, dLoc: [ 0, 5, 0, 33 ], Branch: { True: { Ref: 11 }, False: { Add: 29 } } } + - { File: 0, dLoc: [ 1, 13, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 2, 12 ], Ref: 11 } + - { File: 0, dLoc: [ 0, 5, 0, 33 ], Branch: { True: { Ref: 11 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 11 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 12 }, False: { Sub: 34 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 12 }, False: { Sub: 9 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 12 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 12 } - - { File: 0, dLoc: [ 4, 5, 2, 12 ], Ref: 13 } - - { File: 0, dLoc: [ 0, 5, 0, 39 ], Branch: { True: { Ref: 13 }, False: { Add: 35 } } } + - { File: 0, dLoc: [ 1, 13, 3, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 1, 1, 1 ], Skip: { } } + - { File: 0, dLoc: [ 2, 5, 2, 12 ], Ref: 13 } + - { File: 0, dLoc: [ 0, 5, 0, 39 ], Branch: { True: { Ref: 13 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 13 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 14 }, False: { Sub: 40 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 14 }, False: { Sub: 10 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 14 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 14 } - - { File: 0, dLoc: [ 2, 5, 2, 12 ], Ref: 15 } - - { File: 0, dLoc: [ 0, 5, 0, 12 ], Branch: { True: { Ref: 15 }, False: { Add: 41 } } } + - { File: 0, dLoc: [ 1, 13, 1, 5 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 5, 2, 12 ], Ref: 15 } + - { File: 0, dLoc: [ 0, 5, 0, 12 ], Branch: { True: { Ref: 15 }, False: { Zero: { } } } } - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 15 } - - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 16 }, False: { Sub: 46 } } } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 16 }, False: { Sub: 11 } } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Ref: 16 } - { File: 0, dLoc: [ 0, 14, 0, 16 ], Ref: 16 } - - Name: '__llvm_covfun (2)' + - { File: 0, dLoc: [ 4, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (6)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: boolean_operators Signature: 0x46CF38F3CE391 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 1 }, { Ref: 2 } ] @@ -538,33 +544,38 @@ Sections: - { File: 0, dLoc: [ 0, 9, 0, 14 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 } } } - { File: 0, dLoc: [ 0, 18, 0, 19 ], Ref: 2 } - { File: 0, dLoc: [ 0, 18, 0, 19 ], Branch: { True: { Sub: 2 }, False: { Ref: 3 } } } - - { File: 0, dLoc: [ 2, 9, 0, 14 ], Ref: 1 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 9, 0, 14 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 14 ], Branch: { True: { Ref: 4 }, False: { Sub: 3 } } } - { File: 0, dLoc: [ 0, 18, 0, 19 ], Ref: 4 } - { File: 0, dLoc: [ 0, 18, 0, 19 ], Branch: { True: { Ref: 5 }, False: { Sub: 4 } } } - - { File: 0, dLoc: [ 2, 9, 0, 14 ], Ref: 1 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 9, 0, 14 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 23 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 14 ], Branch: { True: { Sub: 5 }, False: { Ref: 8 } } } - { File: 0, dLoc: [ 0, 18, 0, 23 ], Ref: 8 } - { File: 0, dLoc: [ 0, 18, 0, 23 ], Branch: { True: { Sub: 6 }, False: { Ref: 9 } } } - { File: 0, dLoc: [ 0, 27, 0, 28 ], Ref: 6 } - { File: 0, dLoc: [ 0, 27, 0, 28 ], Branch: { True: { Sub: 7 }, False: { Ref: 7 } } } - - { File: 0, dLoc: [ 2, 9, 0, 14 ], Ref: 1 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 9, 0, 14 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 23 ], Ref: 1 } - { File: 0, dLoc: [ 0, 9, 0, 14 ], Branch: { True: { Ref: 12 }, False: { Sub: 8 } } } - { File: 0, dLoc: [ 0, 18, 0, 23 ], Ref: 12 } - { File: 0, dLoc: [ 0, 18, 0, 23 ], Branch: { True: { Ref: 13 }, False: { Sub: 9 } } } - { File: 0, dLoc: [ 0, 27, 0, 28 ], Ref: 10 } - { File: 0, dLoc: [ 0, 27, 0, 28 ], Branch: { True: { Ref: 11 }, False: { Sub: 10 } } } - - Name: __llvm_covfun + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (7)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: boolop_loops Signature: 0xAC1EE72F5632D15F - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Add: 0 }, { Ref: 2 } ] @@ -586,64 +597,76 @@ Sections: - [ { Ref: 11 }, { Ref: 12 } ] Records: - { File: 0, dLoc: [ 194, 21, 13, 2 ], Ref: 0 } - - { File: 0, dLoc: [ 3, 10, 0, 11 ], Add: 0 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 10, 0, 11 ], Add: 0 } - { File: 0, dLoc: [ 0, 10, 0, 21 ], Add: 0 } - { File: 0, dLoc: [ 0, 10, 0, 11 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 } } } - { File: 0, dLoc: [ 0, 15, 0, 21 ], Ref: 2 } - { File: 0, dLoc: [ 0, 15, 0, 21 ], Branch: { True: { Ref: 3 }, False: { Sub: 2 } } } - { File: 0, dLoc: [ 0, 22, 1, 5 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 1, 5, 0, 8 ], Ref: 1 } - - { File: 0, dLoc: [ 2, 10, 0, 17 ], Add: 6 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 10, 0, 17 ], Add: 6 } - { File: 0, dLoc: [ 0, 10, 0, 28 ], Add: 6 } - { File: 0, dLoc: [ 0, 10, 0, 17 ], Branch: { True: { Sub: 5 }, False: { Ref: 5 } } } - { File: 0, dLoc: [ 0, 21, 0, 28 ], Ref: 5 } - { File: 0, dLoc: [ 0, 21, 0, 28 ], Branch: { True: { Sub: 7 }, False: { Ref: 6 } } } - { File: 0, dLoc: [ 0, 29, 1, 5 ], isGap: true, Ref: 4 } - { File: 0, dLoc: [ 1, 5, 0, 8 ], Ref: 4 } - - { File: 0, dLoc: [ 2, 17, 0, 18 ], Add: 11 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 17, 0, 18 ], Add: 11 } - { File: 0, dLoc: [ 0, 17, 0, 28 ], Add: 11 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 8 }, False: { Sub: 10 } } } - { File: 0, dLoc: [ 0, 22, 0, 28 ], Ref: 8 } - { File: 0, dLoc: [ 0, 22, 0, 28 ], Branch: { True: { Ref: 9 }, False: { Sub: 12 } } } - { File: 0, dLoc: [ 0, 30, 0, 33 ], Ref: 7 } - { File: 0, dLoc: [ 0, 34, 0, 35 ], Ref: 7 } - - { File: 0, dLoc: [ 2, 10, 0, 17 ], Add: 16 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 10, 0, 17 ], Add: 16 } - { File: 0, dLoc: [ 0, 10, 0, 28 ], Add: 16 } - { File: 0, dLoc: [ 0, 10, 0, 17 ], Branch: { True: { Sub: 15 }, False: { Ref: 11 } } } - { File: 0, dLoc: [ 0, 21, 0, 28 ], Ref: 11 } - { File: 0, dLoc: [ 0, 21, 0, 28 ], Branch: { True: { Sub: 17 }, False: { Ref: 12 } } } - { File: 0, dLoc: [ 0, 30, 0, 33 ], Ref: 10 } - { File: 0, dLoc: [ 0, 34, 0, 35 ], Ref: 10 } - - Name: '__llvm_covfun (6)' + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (8)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: conditional_operator Signature: 0xD6D0 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 0 }, { Ref: 2 } ] - [ { Ref: 0 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 209, 29, 7, 2 ], Ref: 0 } - - { File: 0, dLoc: [ 3, 11, 0, 17 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } - - { File: 0, dLoc: [ 0, 18, 0, 20 ], isGap: true, Ref: 1 } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 11, 0, 17 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 11, 0, 17 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } + - { File: 0, dLoc: [ 0, 19, 0, 20 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 0, 20, 0, 21 ], Ref: 1 } - { File: 0, dLoc: [ 0, 24, 0, 25 ], Sub: 0 } - - { File: 0, dLoc: [ 2, 11, 0, 12 ], Branch: { True: { Ref: 2 }, False: { Sub: 2 } } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 11, 0, 12 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 2 }, False: { Sub: 2 } } } - { File: 0, dLoc: [ 0, 16, 0, 17 ], Sub: 2 } - - Name: '__llvm_covfun (1)' + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - Name: '__llvm_covfun (9)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: do_fallthrough Signature: 0x78F0876298F0EA92 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 1 }, { Ref: 2 } ] @@ -665,35 +688,38 @@ Sections: - { File: 0, dLoc: [ 0, 31, 0, 32 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 0, 32, 9, 4 ], Ref: 1 } - { File: 0, dLoc: [ 2, 8, 6, 6 ], Add: 10 } - - { File: 0, dLoc: [ 4, 11, 0, 16 ], Add: 10 } + - { File: 0, dLoc: [ 1, 1, 2, 77 ], Skip: { } } + - { File: 0, dLoc: [ 3, 11, 0, 16 ], Add: 10 } - { File: 0, dLoc: [ 0, 11, 0, 16 ], Branch: { True: { Ref: 3 }, False: { Sub: 9 } } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], isGap: true, Ref: 3 } - { File: 0, dLoc: [ 0, 18, 0, 23 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 23, 1, 7 ], isGap: true, Sub: 9 } + - { File: 0, dLoc: [ 0, 24, 1, 7 ], isGap: true, Sub: 9 } - { File: 0, dLoc: [ 1, 7, 1, 6 ], Sub: 9 } - { File: 0, dLoc: [ 1, 14, 0, 19 ], Sub: 9 } - { File: 0, dLoc: [ 0, 14, 0, 19 ], Branch: { True: { Ref: 2 }, False: { Sub: 11 } } } - Name: '__llvm_covfun (10)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: main Signature: 0x18 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: [] Records: - { File: 0, dLoc: [ 245, 40, 15, 2 ], Ref: 0 } - Name: '__llvm_covfun (11)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: 'branch-c-general.c:static_func' Signature: 0x46D1 - FilenamesRef: 0x1A6D4D6FD974D39F + FilenamesRef: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] Records: @@ -705,14 +731,16 @@ Sections: - { File: 0, dLoc: [ 0, 32, 1, 4 ], Ref: 1 } - Name: __llvm_covmap Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovMap: - - Version: 3 - FnBlobHash: 0x1A6D4D6FD974D39F + - Version: 6 + FnBlobHash: 0x4F0FF417951E554C Filenames: - - '/tmp/branch-c-general.c' + - branch-c-general.c - Name: __llvm_prf_names Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] AddressAlign: 0x1 PrfNames: - Names: @@ -731,84 +759,87 @@ Sections: - Type: SectionHeaderTable Sections: - Name: .strtab - - Name: '__llvm_covfun (7)' + - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' + - Name: '__llvm_covfun (2)' + - Name: '__llvm_covfun (3)' - Name: '__llvm_covfun (4)' - Name: '__llvm_covfun (5)' - - Name: '__llvm_covfun (3)' - - Name: '__llvm_covfun (9)' - - Name: '__llvm_covfun (8)' - - Name: '__llvm_covfun (2)' - - Name: __llvm_covfun - Name: '__llvm_covfun (6)' - - Name: '__llvm_covfun (1)' + - Name: '__llvm_covfun (7)' + - Name: '__llvm_covfun (8)' + - Name: '__llvm_covfun (9)' - Name: '__llvm_covfun (10)' - Name: '__llvm_covfun (11)' - Name: __llvm_covmap - Name: __llvm_prf_names - Name: .symtab Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap - Name: __llvm_prf_names Type: STT_SECTION Section: __llvm_prf_names - - Name: __covrec_135D504B043D95F5u + - Name: __covrec_79BE9FB148987D7u Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0xEE + Size: 0x7C Other: [ STV_HIDDEN ] - - Name: __covrec_42EB9670C4E7E87Du + - Name: __covrec_688E43F1A505AD83u Type: STT_OBJECT Section: '__llvm_covfun (1)' Binding: STB_WEAK - Size: 0x96 + Size: 0x16A Other: [ STV_HIDDEN ] - - Name: __covrec_58A39A89A88AA459u + - Name: __covrec_6973C52804C74904u Type: STT_OBJECT Section: '__llvm_covfun (2)' Binding: STB_WEAK - Size: 0xDD + Size: 0x16A Other: [ STV_HIDDEN ] - Name: __covrec_5E259F0529789455u Type: STT_OBJECT Section: '__llvm_covfun (3)' Binding: STB_WEAK - Size: 0x1FA + Size: 0x279 Other: [ STV_HIDDEN ] - - Name: __covrec_688E43F1A505AD83u + - Name: __covrec_BF9282263CCA2971u Type: STT_OBJECT Section: '__llvm_covfun (4)' Binding: STB_WEAK - Size: 0x160 + Size: 0x1F5 Other: [ STV_HIDDEN ] - - Name: __covrec_6973C52804C74904u + - Name: __covrec_7B4187606E1C4D3Fu Type: STT_OBJECT Section: '__llvm_covfun (5)' Binding: STB_WEAK - Size: 0x14E + Size: 0x1B1 Other: [ STV_HIDDEN ] - - Name: __covrec_795CF1BD69C3E520u + - Name: __covrec_58A39A89A88AA459u Type: STT_OBJECT Section: '__llvm_covfun (6)' Binding: STB_WEAK - Size: 0x52 + Size: 0xF1 Other: [ STV_HIDDEN ] - - Name: __covrec_79BE9FB148987D7u + - Name: __covrec_135D504B043D95F5u Type: STT_OBJECT Section: '__llvm_covfun (7)' Binding: STB_WEAK - Size: 0x77 + Size: 0x107 Other: [ STV_HIDDEN ] - - Name: __covrec_7B4187606E1C4D3Fu + - Name: __covrec_795CF1BD69C3E520u Type: STT_OBJECT Section: '__llvm_covfun (8)' Binding: STB_WEAK - Size: 0x1CC + Size: 0x6B Other: [ STV_HIDDEN ] - - Name: __covrec_BF9282263CCA2971u + - Name: __covrec_42EB9670C4E7E87Du Type: STT_OBJECT Section: '__llvm_covfun (9)' Binding: STB_WEAK - Size: 0x1DC + Size: 0x9B Other: [ STV_HIDDEN ] - Name: __covrec_DB956436E78DD5FAu Type: STT_OBJECT diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.cpp b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.cpp index 0a7d8d8967115..a5fb68c98bb5e 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.cpp +++ b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.cpp @@ -78,6 +78,6 @@ extern "C" { extern void __llvm_profile_write_file(void); } int main(int argc, char *argv[]) { func(atoi(argv[1]), atoi(argv[2])); - __llvm_profile_write_file(); + (void)0; return 0; } diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.proftext b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.proftext index e5c67dd21a04b..26f0f20656d17 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.proftext +++ b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.proftext @@ -1,8 +1,8 @@ _Z4funcii # Func Hash: -9495997393973228792 +8468630735863722633 # Num Counters: -69 +59 # Counter Values: 4 0 @@ -31,11 +31,6 @@ _Z4funcii 3 3 3 -3 -3 -3 -3 -3 1 2 0 @@ -51,12 +46,7 @@ _Z4funcii 3 3 3 -3 -3 -3 -3 4 -3 1 0 2 diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml index bae787216fee7..8e8182bf3e6db 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.yaml @@ -1,21 +1,22 @@ --- !ELF FileHeader: - Class: ELFCLASS32 + Class: ELFCLASS64 Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] + Machine: EM_X86_64 SectionHeaderStringTable: .strtab Sections: - Name: __llvm_covfun Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: _Z4funcii - Signature: 0x83C88F515FCF34F8 - FilenamesRef: 0x433778095298742 + Signature: 0x75869EC9191CB289 + FilenamesRef: 0xE846BD6FE050298F Filenames: - - '/tmp/branch-logical-mixed.cpp' + - branch-logical-mixed.cpp Expressions: - [ { Ref: 0 }, { Ref: 9 } ] - [ { Ref: 9 }, { Ref: 10 } ] @@ -29,45 +30,46 @@ Sections: - [ { Ref: 15 }, { Ref: 16 } ] - [ { Ref: 13 }, { Ref: 14 } ] - [ { Ref: 11 }, { Ref: 12 } ] - - [ { Ref: 0 }, { Ref: 31 } ] - - [ { Ref: 31 }, { Ref: 32 } ] - - [ { Ref: 29 }, { Ref: 33 } ] - - [ { Ref: 33 }, { Ref: 34 } ] - - [ { Ref: 27 }, { Ref: 35 } ] - - [ { Ref: 35 }, { Ref: 36 } ] - - [ { Ref: 25 }, { Ref: 37 } ] - - [ { Ref: 37 }, { Ref: 38 } ] - - [ { Ref: 23 }, { Ref: 39 } ] - - [ { Ref: 39 }, { Ref: 40 } ] - - [ { Ref: 21 }, { Ref: 41 } ] - - [ { Ref: 41 }, { Ref: 42 } ] - - [ { Ref: 0 }, { Ref: 53 } ] + - [ { Ref: 0 }, { Ref: 26 } ] + - [ { Ref: 26 }, { Ref: 27 } ] + - [ { Ref: 25 }, { Ref: 28 } ] + - [ { Ref: 28 }, { Ref: 29 } ] + - [ { Ref: 24 }, { Ref: 30 } ] + - [ { Ref: 30 }, { Ref: 31 } ] + - [ { Ref: 23 }, { Ref: 32 } ] + - [ { Ref: 32 }, { Ref: 33 } ] + - [ { Ref: 22 }, { Ref: 34 } ] + - [ { Ref: 34 }, { Ref: 35 } ] + - [ { Ref: 21 }, { Ref: 36 } ] + - [ { Ref: 36 }, { Ref: 37 } ] + - [ { Ref: 0 }, { Ref: 43 } ] + - [ { Ref: 43 }, { Ref: 44 } ] + - [ { Ref: 42 }, { Ref: 45 } ] + - [ { Ref: 45 }, { Ref: 46 } ] + - [ { Ref: 41 }, { Ref: 47 } ] + - [ { Ref: 47 }, { Ref: 48 } ] + - [ { Ref: 40 }, { Ref: 49 } ] + - [ { Ref: 49 }, { Ref: 50 } ] + - [ { Ref: 39 }, { Ref: 51 } ] + - [ { Ref: 51 }, { Ref: 52 } ] + - [ { Ref: 38 }, { Ref: 53 } ] - [ { Ref: 53 }, { Ref: 54 } ] - - [ { Ref: 51 }, { Ref: 55 } ] - - [ { Ref: 55 }, { Ref: 56 } ] - - [ { Ref: 49 }, { Ref: 57 } ] - - [ { Ref: 57 }, { Ref: 58 } ] - - [ { Ref: 47 }, { Ref: 59 } ] - - [ { Ref: 59 }, { Ref: 60 } ] - - [ { Ref: 45 }, { Ref: 61 } ] - - [ { Ref: 61 }, { Ref: 62 } ] - - [ { Ref: 43 }, { Ref: 63 } ] - - [ { Ref: 63 }, { Ref: 64 } ] - - [ { Ref: 0 }, { Ref: 65 } ] - - [ { Ref: 0 }, { Ref: 65 } ] - - [ { Ref: 0 }, { Ref: 65 } ] - - [ { Ref: 0 }, { Ref: 66 } ] - - [ { Ref: 0 }, { Ref: 66 } ] - - [ { Ref: 0 }, { Ref: 66 } ] - - [ { Ref: 0 }, { Ref: 67 } ] - - [ { Ref: 0 }, { Ref: 67 } ] - - [ { Ref: 0 }, { Ref: 67 } ] - - [ { Ref: 0 }, { Ref: 68 } ] - - [ { Ref: 0 }, { Ref: 68 } ] - - [ { Ref: 0 }, { Ref: 68 } ] + - [ { Ref: 0 }, { Ref: 55 } ] + - [ { Ref: 0 }, { Ref: 55 } ] + - [ { Ref: 0 }, { Ref: 55 } ] + - [ { Ref: 0 }, { Ref: 56 } ] + - [ { Ref: 0 }, { Ref: 56 } ] + - [ { Ref: 0 }, { Ref: 56 } ] + - [ { Ref: 0 }, { Ref: 57 } ] + - [ { Ref: 0 }, { Ref: 57 } ] + - [ { Ref: 0 }, { Ref: 57 } ] + - [ { Ref: 0 }, { Ref: 58 } ] + - [ { Ref: 0 }, { Ref: 58 } ] + - [ { Ref: 0 }, { Ref: 58 } ] Records: - { File: 0, dLoc: [ 8, 25, 67, 2 ], Ref: 0 } - - { File: 0, dLoc: [ 8, 12, 0, 14 ], Ref: 0 } + - { File: 0, dLoc: [ 7, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 0, 14 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 1, 14 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 2, 14 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 3, 14 ], Ref: 0 } @@ -83,7 +85,8 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 14 ], Branch: { True: { Ref: 4 }, False: { Sub: 4 } } } - { File: 0, dLoc: [ 1, 12, 0, 14 ], Ref: 1 } - { File: 0, dLoc: [ 0, 12, 0, 14 ], Branch: { True: { Ref: 2 }, False: { Sub: 5 } } } - - { File: 0, dLoc: [ 2, 12, 0, 14 ], Ref: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 0, 14 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 1, 14 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 2, 14 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 3, 14 ], Ref: 0 } @@ -99,120 +102,129 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 14 ], Branch: { True: { Sub: 10 }, False: { Ref: 14 } } } - { File: 0, dLoc: [ 1, 12, 0, 14 ], Ref: 11 } - { File: 0, dLoc: [ 0, 12, 0, 14 ], Branch: { True: { Sub: 11 }, False: { Ref: 12 } } } - - { File: 0, dLoc: [ 2, 12, 1, 16 ], Ref: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 3, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 5, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 7, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 9, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 0 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 31 }, False: { Sub: 12 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 31 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 32 }, False: { Sub: 13 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 29 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 29 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 33 }, False: { Sub: 14 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 33 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 34 }, False: { Sub: 15 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 27 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 27 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 35 }, False: { Sub: 16 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 35 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 36 }, False: { Sub: 17 } } } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 26 }, False: { Sub: 12 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 26 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 27 }, False: { Sub: 13 } } } - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 25 } - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 25 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 37 }, False: { Sub: 18 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 37 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 38 }, False: { Sub: 19 } } } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 28 }, False: { Sub: 14 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 28 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 29 }, False: { Sub: 15 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 24 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 24 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 30 }, False: { Sub: 16 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 30 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 31 }, False: { Sub: 17 } } } - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 23 } - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 23 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 39 }, False: { Sub: 20 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 39 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 40 }, False: { Sub: 21 } } } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 32 }, False: { Sub: 18 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 32 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 33 }, False: { Sub: 19 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 22 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 22 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 34 }, False: { Sub: 20 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 34 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 35 }, False: { Sub: 21 } } } - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 21 } - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 21 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 41 }, False: { Sub: 22 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 41 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 42 }, False: { Sub: 23 } } } - - { File: 0, dLoc: [ 2, 12, 1, 16 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 36 }, False: { Sub: 22 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 36 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Ref: 37 }, False: { Sub: 23 } } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 3, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 5, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 7, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 9, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 0 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 24 }, False: { Ref: 53 } } } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 24 }, False: { Ref: 43 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 43 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 25 }, False: { Ref: 44 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 42 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 42 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 26 }, False: { Ref: 45 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 45 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 27 }, False: { Ref: 46 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 41 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 41 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 28 }, False: { Ref: 47 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 47 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 29 }, False: { Ref: 48 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 40 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 40 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 30 }, False: { Ref: 49 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 49 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 31 }, False: { Ref: 50 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 39 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 39 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 32 }, False: { Ref: 51 } } } + - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 51 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 33 }, False: { Ref: 52 } } } + - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 38 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 38 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 34 }, False: { Ref: 53 } } } - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 53 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 25 }, False: { Ref: 54 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 51 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 51 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 26 }, False: { Ref: 55 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 55 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 27 }, False: { Ref: 56 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 49 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 49 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 28 }, False: { Ref: 57 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 57 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 29 }, False: { Ref: 58 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 47 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 47 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 30 }, False: { Ref: 59 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 59 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 31 }, False: { Ref: 60 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 45 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 45 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 32 }, False: { Ref: 61 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 61 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 33 }, False: { Ref: 62 } } } - - { File: 0, dLoc: [ 1, 12, 1, 16 ], Ref: 43 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Ref: 43 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 34 }, False: { Ref: 63 } } } - - { File: 0, dLoc: [ 1, 13, 0, 15 ], Ref: 63 } - - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 35 }, False: { Ref: 64 } } } - - { File: 0, dLoc: [ 2, 7, 0, 8 ], Ref: 0 } - - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 65 }, False: { Sub: 38 } } } - - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 65 } - - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 65 } + - { File: 0, dLoc: [ 0, 13, 0, 15 ], Branch: { True: { Sub: 35 }, False: { Ref: 54 } } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 55 }, False: { Sub: 38 } } } + - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 55 } + - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 55 } - { File: 0, dLoc: [ 0, 23, 2, 5 ], isGap: true, Sub: 38 } - { File: 0, dLoc: [ 2, 5, 0, 22 ], Sub: 38 } - - { File: 0, dLoc: [ 2, 7, 0, 8 ], Ref: 0 } - - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 66 }, False: { Sub: 41 } } } - - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 66 } - - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 66 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 56 }, False: { Sub: 41 } } } + - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 56 } + - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 56 } - { File: 0, dLoc: [ 0, 23, 2, 5 ], isGap: true, Sub: 41 } - { File: 0, dLoc: [ 2, 5, 0, 22 ], Sub: 41 } - - { File: 0, dLoc: [ 2, 7, 0, 8 ], Ref: 0 } - - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 67 }, False: { Sub: 44 } } } - - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 67 } - - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 67 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 57 }, False: { Sub: 44 } } } + - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 57 } + - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 57 } - { File: 0, dLoc: [ 0, 23, 2, 5 ], isGap: true, Sub: 44 } - { File: 0, dLoc: [ 2, 5, 0, 22 ], Sub: 44 } - - { File: 0, dLoc: [ 2, 7, 0, 8 ], Ref: 0 } - - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 68 }, False: { Sub: 47 } } } - - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 68 } - - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 68 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 8 ], Ref: 0 } + - { File: 0, dLoc: [ 0, 7, 0, 8 ], Branch: { True: { Ref: 58 }, False: { Sub: 47 } } } + - { File: 0, dLoc: [ 0, 9, 1, 5 ], isGap: true, Ref: 58 } + - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 58 } - { File: 0, dLoc: [ 0, 23, 2, 5 ], isGap: true, Sub: 47 } - { File: 0, dLoc: [ 2, 5, 0, 22 ], Sub: 47 } - Name: '__llvm_covfun (1)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: main Signature: 0x18 - FilenamesRef: 0x433778095298742 + FilenamesRef: 0xE846BD6FE050298F Filenames: - - '/tmp/branch-logical-mixed.cpp' + - branch-logical-mixed.cpp Expressions: [] Records: - { File: 0, dLoc: [ 79, 1, 4, 2 ], Ref: 0 } - Name: __llvm_covmap Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovMap: - - Version: 3 - FnBlobHash: 0x433778095298742 + - Version: 6 + FnBlobHash: 0xE846BD6FE050298F Filenames: - - '/tmp/branch-logical-mixed.cpp' + - branch-logical-mixed.cpp - Name: __llvm_prf_names Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] AddressAlign: 0x1 PrfNames: - Names: @@ -227,6 +239,9 @@ Sections: - Name: __llvm_prf_names - Name: .symtab Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap - Name: __llvm_prf_names Type: STT_SECTION Section: __llvm_prf_names @@ -234,7 +249,7 @@ Symbols: Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0x3DC + Size: 0x3F7 Other: [ STV_HIDDEN ] - Name: __covrec_DB956436E78DD5FAu Type: STT_OBJECT diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp b/llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp index 712b2790f774a..bea4a7ec88f3c 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp +++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros.cpp @@ -42,11 +42,11 @@ bool func2(int a, int b) { return h; } -extern "C" { extern void __llvm_profile_write_file(void); } + int main(int argc, char *argv[]) { func(atoi(argv[1]), atoi(argv[2])); func2(atoi(argv[1]), atoi(argv[2])); - __llvm_profile_write_file(); + (void)0; return 0; } diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros.proftext b/llvm/test/tools/llvm-cov/Inputs/branch-macros.proftext index 3b42e4121c94b..08763fb0d0070 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-macros.proftext +++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros.proftext @@ -1,6 +1,6 @@ _Z4funcii # Func Hash: -2263559805428111017 +456046650042366162 # Num Counters: 19 # Counter Values: @@ -26,7 +26,7 @@ _Z4funcii _Z5func2ii # Func Hash: -5552544297182115648 +14151920320560143107 # Num Counters: 8 # Counter Values: diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml index bc6275196767f..b26129b217431 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros.yaml @@ -1,41 +1,42 @@ --- !ELF FileHeader: - Class: ELFCLASS32 + Class: ELFCLASS64 Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] + Machine: EM_X86_64 SectionHeaderStringTable: .strtab Sections: - - Name: '__llvm_covfun (1)' + - Name: __llvm_covfun Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: _Z4funcii - Signature: 0x1F69C7A6726516A9 - FilenamesRef: 0x6606FE403140CB5C + Signature: 0x654340310C838D2 + FilenamesRef: 0x5D8FCE3E3196E693 Filenames: - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp Expressions: - [ { Ref: 0 }, { Ref: 17 } ] - [ { Ref: 17 }, { Ref: 18 } ] @@ -56,11 +57,16 @@ Sections: - { File: 0, dLoc: [ 16, 25, 17, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 17 ], Expansion: 1 } - { File: 0, dLoc: [ 0, 21, 0, 26 ], Expansion: 2 } - - { File: 0, dLoc: [ 2, 12, 0, 17 ], Expansion: 3 } - - { File: 0, dLoc: [ 2, 12, 0, 18 ], Expansion: 4 } - - { File: 0, dLoc: [ 2, 12, 0, 18 ], Expansion: 5 } - - { File: 0, dLoc: [ 2, 12, 0, 18 ], Expansion: 6 } - - { File: 0, dLoc: [ 2, 10, 0, 11 ], Ref: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 92 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 0, 17 ], Expansion: 3 } + - { File: 0, dLoc: [ 1, 1, 0, 98 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 0, 18 ], Expansion: 4 } + - { File: 0, dLoc: [ 1, 1, 0, 104 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 0, 18 ], Expansion: 5 } + - { File: 0, dLoc: [ 1, 1, 0, 110 ], Skip: { } } + - { File: 0, dLoc: [ 1, 12, 0, 18 ], Expansion: 6 } + - { File: 0, dLoc: [ 1, 1, 0, 116 ], Skip: { } } + - { File: 0, dLoc: [ 1, 10, 0, 11 ], Ref: 0 } - { File: 0, dLoc: [ 0, 10, 0, 16 ], Ref: 0 } - { File: 0, dLoc: [ 0, 10, 0, 21 ], Ref: 0 } - { File: 0, dLoc: [ 0, 10, 0, 26 ], Ref: 0 } @@ -73,6 +79,7 @@ Sections: - { File: 0, dLoc: [ 0, 25, 0, 26 ], Branch: { True: { Ref: 14 }, False: { Sub: 3 } } } - { File: 0, dLoc: [ 0, 30, 0, 31 ], Ref: 11 } - { File: 0, dLoc: [ 0, 30, 0, 31 ], Branch: { True: { Ref: 12 }, False: { Sub: 4 } } } + - { File: 0, dLoc: [ 1, 1, 4, 85 ], Skip: { } } - { File: 1, dLoc: [ 5, 15, 0, 23 ], Ref: 0 } - { File: 1, dLoc: [ 0, 15, 0, 23 ], Ref: 0 } - { File: 1, dLoc: [ 0, 15, 0, 23 ], Branch: { True: { Ref: 1 }, False: { Sub: 5 } } } @@ -116,27 +123,28 @@ Sections: - { File: 19, dLoc: [ 0, 15, 0, 23 ], Branch: { True: { Ref: 9 }, False: { Sub: 13 } } } - { File: 20, dLoc: [ 6, 15, 0, 23 ], Ref: 9 } - { File: 20, dLoc: [ 0, 15, 0, 23 ], Branch: { True: { Ref: 10 }, False: { Sub: 14 } } } - - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: _Z5func2ii - Signature: 0x4D0E999EA1293740 - FilenamesRef: 0x6606FE403140CB5C + Signature: 0xC465B88D2C9E9B03 + FilenamesRef: 0x5D8FCE3E3196E693 Filenames: - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' - - '/tmp/branch-macros.cpp' + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp + - branch-macros.cpp Expressions: - [ { Ref: 1 }, { Ref: 2 } ] - [ { Ref: 1 }, { Ref: 5 } ] @@ -148,6 +156,7 @@ Sections: - { File: 0, dLoc: [ 36, 26, 7, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 14, 0, 20 ], Expansion: 1 } - { File: 0, dLoc: [ 0, 24, 0, 29 ], Expansion: 2 } + - { File: 0, dLoc: [ 1, 1, 3, 96 ], Skip: { } } - { File: 1, dLoc: [ 11, 16, 0, 22 ], Expansion: 3 } - { File: 2, dLoc: [ 8, 15, 0, 38 ], Ref: 1 } - { File: 2, dLoc: [ 0, 15, 0, 38 ], Branch: { True: { Sub: 0 }, False: { Ref: 2 } } } @@ -177,26 +186,29 @@ Sections: - { File: 12, dLoc: [ 0, 15, 0, 23 ], Branch: { True: { Ref: 4 }, False: { Sub: 5 } } } - Name: '__llvm_covfun (2)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: main Signature: 0x18 - FilenamesRef: 0x6606FE403140CB5C + FilenamesRef: 0x5D8FCE3E3196E693 Filenames: - - '/tmp/branch-macros.cpp' + - branch-macros.cpp Expressions: [] Records: - { File: 0, dLoc: [ 47, 1, 5, 2 ], Ref: 0 } - Name: __llvm_covmap Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovMap: - - Version: 3 - FnBlobHash: 0x6606FE403140CB5C + - Version: 6 + FnBlobHash: 0x5D8FCE3E3196E693 Filenames: - - '/tmp/branch-macros.cpp' + - branch-macros.cpp - Name: __llvm_prf_names Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] AddressAlign: 0x1 PrfNames: - Names: @@ -206,27 +218,30 @@ Sections: - Type: SectionHeaderTable Sections: - Name: .strtab - - Name: '__llvm_covfun (1)' - Name: __llvm_covfun + - Name: '__llvm_covfun (1)' - Name: '__llvm_covfun (2)' - Name: __llvm_covmap - Name: __llvm_prf_names - Name: .symtab Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap - Name: __llvm_prf_names Type: STT_SECTION Section: __llvm_prf_names - - Name: __covrec_956373C63F981DB0u + - Name: __covrec_B30B5C302CEDA0F0u Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0xE4 + Size: 0x1E2 Other: [ STV_HIDDEN ] - - Name: __covrec_B30B5C302CEDA0F0u + - Name: __covrec_956373C63F981DB0u Type: STT_OBJECT Section: '__llvm_covfun (1)' Binding: STB_WEAK - Size: 0x1C4 + Size: 0xE9 Other: [ STV_HIDDEN ] - Name: __covrec_DB956436E78DD5FAu Type: STT_OBJECT diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c index c41739ff0b22f..f2d6e4ad31e0b 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c +++ b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.c @@ -13,7 +13,7 @@ int main(int argc, char *argv[]) int i = 0; if (argc < 3) // CHECK: Branch ([[@LINE]]:7): [True: 16.67%, False: 83.33%] { - __llvm_profile_write_file(); + (void)0; return 0; } @@ -38,13 +38,13 @@ int main(int argc, char *argv[]) switch (a) { - case 0: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] + case 0: // CHECK: Branch ([[@LINE]]:5): [True: 100.00%, Folded] printf("case0\n"); - case 2: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] + case 2: // CHECK: Branch ([[@LINE]]:5): [True: 100.00%, Folded] printf("case2\n"); - case 3: // CHECK: Branch ([[@LINE]]:5): [True: 0.00%, False: 100.00%] + case 3: // CHECK: Branch ([[@LINE]]:5): [True: 0.00%, Folded] printf("case3\n"); - default: break; // CHECK: Branch ([[@LINE]]:5): [True: 60.00%, False: 40.00%] + default: break; // CHECK: Branch ([[@LINE]]:5): [True: 100.00%, Folded] } i = 0; @@ -52,7 +52,7 @@ int main(int argc, char *argv[]) printf("loop\n"); } while (i++ < 10); // CHECK: Branch ([[@LINE]]:12): [True: 90.91%, False: 9.09%] - __llvm_profile_write_file(); + (void)b; - return b; + return 0; } diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.proftext b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.proftext index 9bb07479e863e..18c3743f16f6d 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.proftext +++ b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.proftext @@ -1,6 +1,6 @@ main # Func Hash: -3890582504168513655 +947882199001105187 # Num Counters: 21 # Counter Values: diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.yaml index b038df7a17cb0..232d1ee3c77bb 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.yaml @@ -1,21 +1,22 @@ --- !ELF FileHeader: - Class: ELFCLASS32 + Class: ELFCLASS64 Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] + Machine: EM_X86_64 SectionHeaderStringTable: .strtab Sections: - Name: __llvm_covfun Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: main - Signature: 0x35FE202CA2506077 - FilenamesRef: 0x520437DDBB69AFCD + Signature: 0xD278DD680608323 + FilenamesRef: 0xBE97BD4135C71D17 Filenames: - - '/tmp/branch-showBranchPercentage.c' + - branch-showBranchPercentage.c Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Sub: 0 }, { Ref: 7 } ] @@ -29,19 +30,11 @@ Sections: - [ { Ref: 12 }, { Ref: 13 } ] - [ { Add: 11 }, { Ref: 1 } ] - [ { Ref: 0 }, { Ref: 14 } ] - - [ { Add: 13 }, { Ref: 19 } ] - - [ { Ref: 17 }, { Ref: 18 } ] - [ { Ref: 16 }, { Ref: 17 } ] - - [ { Add: 16 }, { Ref: 19 } ] - - [ { Ref: 16 }, { Ref: 18 } ] - - [ { Add: 25 }, { Ref: 18 } ] - - [ { Ref: 16 }, { Ref: 17 } ] - - [ { Add: 25 }, { Ref: 19 } ] + - [ { Add: 17 }, { Ref: 18 } ] - [ { Ref: 16 }, { Ref: 17 } ] - - [ { Add: 24 }, { Ref: 19 } ] - - [ { Add: 25 }, { Ref: 18 } ] - - [ { Ref: 16 }, { Ref: 17 } ] - - [ { Add: 25 }, { Ref: 18 } ] + - [ { Add: 16 }, { Ref: 19 } ] + - [ { Add: 17 }, { Ref: 18 } ] - [ { Ref: 16 }, { Ref: 17 } ] - [ { Ref: 15 }, { Ref: 20 } ] - [ { Ref: 15 }, { Ref: 20 } ] @@ -52,8 +45,10 @@ Sections: - { File: 0, dLoc: [ 0, 16, 1, 3 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 1, 3, 3, 4 ], Ref: 1 } - { File: 0, dLoc: [ 3, 4, 2, 3 ], isGap: true, Sub: 0 } - - { File: 0, dLoc: [ 2, 3, 38, 2 ], Sub: 0 } - - { File: 0, dLoc: [ 7, 7, 0, 25 ], Sub: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 38, 2 ], Sub: 0 } + - { File: 0, dLoc: [ 2, 1, 4, 103 ], Skip: { } } + - { File: 0, dLoc: [ 5, 7, 0, 25 ], Sub: 0 } - { File: 0, dLoc: [ 0, 7, 0, 36 ], Sub: 0 } - { File: 0, dLoc: [ 0, 7, 0, 46 ], Sub: 0 } - { File: 0, dLoc: [ 0, 8, 0, 14 ], Sub: 0 } @@ -66,46 +61,57 @@ Sections: - { File: 0, dLoc: [ 0, 40, 0, 46 ], Branch: { True: { Sub: 4 }, False: { Ref: 4 } } } - { File: 0, dLoc: [ 0, 47, 1, 5 ], isGap: true, Ref: 2 } - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 2 } - - { File: 0, dLoc: [ 2, 8, 0, 14 ], Sub: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 7, 0, 25 ], Sub: 0 } + - { File: 0, dLoc: [ 0, 8, 0, 14 ], Sub: 0 } - { File: 0, dLoc: [ 0, 8, 0, 14 ], Branch: { True: { Sub: 5 }, False: { Ref: 10 } } } - { File: 0, dLoc: [ 0, 18, 0, 24 ], Ref: 10 } - { File: 0, dLoc: [ 0, 18, 0, 24 ], Branch: { True: { Sub: 6 }, False: { Ref: 11 } } } - - { File: 0, dLoc: [ 0, 26, 0, 28 ], isGap: true, Ref: 9 } + - { File: 0, dLoc: [ 0, 27, 0, 28 ], isGap: true, Ref: 9 } - { File: 0, dLoc: [ 0, 28, 0, 29 ], Ref: 9 } - { File: 0, dLoc: [ 0, 32, 0, 35 ], Sub: 7 } - - { File: 0, dLoc: [ 2, 8, 0, 14 ], Sub: 0 } + - { File: 0, dLoc: [ 1, 1, 0, 103 ], Skip: { } } + - { File: 0, dLoc: [ 1, 8, 0, 14 ], Sub: 0 } - { File: 0, dLoc: [ 0, 8, 0, 14 ], Branch: { True: { Ref: 12 }, False: { Sub: 8 } } } - { File: 0, dLoc: [ 0, 18, 0, 24 ], Ref: 12 } - { File: 0, dLoc: [ 0, 18, 0, 24 ], Branch: { True: { Ref: 13 }, False: { Sub: 9 } } } - - { File: 0, dLoc: [ 2, 15, 0, 20 ], Sub: 10 } + - { File: 0, dLoc: [ 1, 1, 0, 103 ], Skip: { } } + - { File: 0, dLoc: [ 1, 15, 0, 20 ], Sub: 10 } - { File: 0, dLoc: [ 0, 15, 0, 20 ], Branch: { True: { Ref: 14 }, False: { Sub: 0 } } } - { File: 0, dLoc: [ 0, 22, 0, 25 ], Ref: 14 } - { File: 0, dLoc: [ 0, 26, 0, 27 ], isGap: true, Ref: 14 } - { File: 0, dLoc: [ 0, 27, 0, 45 ], Ref: 14 } - - { File: 0, dLoc: [ 6, 3, 7, 19 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 1, 1, 1, 1 ], Skip: { } } + - { File: 0, dLoc: [ 3, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 2, 3, 7, 19 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 5, 6, 19 ], Ref: 16 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 16 }, False: { Add: 12 } } } - - { File: 0, dLoc: [ 2, 5, 4, 19 ], Add: 25 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 17 }, False: { Add: 15 } } } - - { File: 0, dLoc: [ 2, 5, 2, 19 ], Add: 24 } - - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 18 }, False: { Add: 19 } } } - - { File: 0, dLoc: [ 2, 5, 0, 19 ], Add: 21 } - - { File: 0, dLoc: [ 0, 5, 0, 12 ], Branch: { True: { Ref: 19 }, False: { Add: 24 } } } - - { File: 0, dLoc: [ 0, 19, 3, 3 ], isGap: true, Ref: 15 } - - { File: 0, dLoc: [ 3, 3, 8, 2 ], Ref: 15 } - - { File: 0, dLoc: [ 1, 6, 2, 4 ], Add: 27 } - - { File: 0, dLoc: [ 2, 12, 0, 20 ], Add: 27 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 16 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 2, 5, 4, 19 ], Add: 17 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 17 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 2, 5, 2, 19 ], Add: 16 } + - { File: 0, dLoc: [ 0, 5, 0, 11 ], Branch: { True: { Ref: 18 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 2, 5, 0, 19 ], Add: 15 } + - { File: 0, dLoc: [ 0, 5, 0, 12 ], Branch: { True: { Ref: 19 }, False: { Zero: { } } } } + - { File: 0, dLoc: [ 1, 4, 2, 3 ], isGap: true, Ref: 15 } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 1, 3, 7, 11 ], Ref: 15 } + - { File: 0, dLoc: [ 1, 6, 2, 4 ], Add: 19 } + - { File: 0, dLoc: [ 2, 12, 0, 20 ], Add: 19 } - { File: 0, dLoc: [ 0, 12, 0, 20 ], Branch: { True: { Ref: 20 }, False: { Ref: 15 } } } + - { File: 0, dLoc: [ 1, 1, 0, 1 ], Skip: { } } + - { File: 0, dLoc: [ 2, 1, 0, 1 ], Skip: { } } - Name: __llvm_covmap Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovMap: - - Version: 3 - FnBlobHash: 0x520437DDBB69AFCD + - Version: 6 + FnBlobHash: 0xBE97BD4135C71D17 Filenames: - - '/tmp/branch-showBranchPercentage.c' + - branch-showBranchPercentage.c - Name: __llvm_prf_names Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] AddressAlign: 0x1 PrfNames: - Names: @@ -118,6 +124,9 @@ Sections: - Name: __llvm_prf_names - Name: .symtab Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap - Name: __llvm_prf_names Type: STT_SECTION Section: __llvm_prf_names @@ -125,6 +134,6 @@ Symbols: Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0x18C + Size: 0x1B3 Other: [ STV_HIDDEN ] ... diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-templates.cpp b/llvm/test/tools/llvm-cov/Inputs/branch-templates.cpp index 0795a5346380d..597e596ae84d5 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-templates.cpp +++ b/llvm/test/tools/llvm-cov/Inputs/branch-templates.cpp @@ -25,7 +25,7 @@ int func(T x) { // CHECK-LABEL: _Z4funcIfEiT_: // CHECK: | | Branch ([[@LINE-12]]:6): [True: 0, False: 1] -extern "C" { extern void __llvm_profile_write_file(void); } + int main() { if (func(0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] printf("case1\n"); @@ -33,6 +33,6 @@ int main() { printf("case2\n"); if (func(0.0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] printf("case3\n"); - __llvm_profile_write_file(); + (void)0; return 0; } diff --git a/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml b/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml index c0a89e96e5675..d9afe69bb8a2b 100644 --- a/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/branch-templates.yaml @@ -1,21 +1,22 @@ --- !ELF FileHeader: - Class: ELFCLASS32 + Class: ELFCLASS64 Data: ELFDATA2LSB + OSABI: ELFOSABI_GNU Type: ET_REL - Machine: EM_ARM - Flags: [ EF_ARM_EABI_VER5 ] + Machine: EM_X86_64 SectionHeaderStringTable: .strtab Sections: - - Name: '__llvm_covfun (3)' + - Name: __llvm_covfun Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: main Signature: 0x29244A491292458 - FilenamesRef: 0xB8050C68267FC0DD + FilenamesRef: 0x6BBCABDA409AED26 Filenames: - - '/tmp/branch-templates.cpp' + - branch-templates.cpp Expressions: - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 0 }, { Ref: 2 } ] @@ -36,13 +37,14 @@ Sections: - { File: 0, dLoc: [ 1, 5, 0, 22 ], Ref: 3 } - Name: '__llvm_covfun (1)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: _Z4funcIiEiT_ Signature: 0x292613611 - FilenamesRef: 0xB8050C68267FC0DD + FilenamesRef: 0x6BBCABDA409AED26 Filenames: - - '/tmp/branch-templates.cpp' + - branch-templates.cpp Expressions: - [ { Ref: 0 }, { Ref: 1 } ] Records: @@ -51,20 +53,20 @@ Sections: - { File: 0, dLoc: [ 0, 6, 0, 7 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } - { File: 0, dLoc: [ 0, 8, 1, 5 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 1, 5, 0, 13 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Sub: 0 } - { File: 0, dLoc: [ 0, 14, 2, 5 ], isGap: true, Sub: 0 } - { File: 0, dLoc: [ 2, 5, 0, 13 ], Sub: 0 } - - { File: 0, dLoc: [ 0, 13, 1, 3 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 0, 14, 1, 3 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 3, 1, 2 ], Zero: { } } - Name: '__llvm_covfun (2)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: _Z4funcIbEiT_ Signature: 0x292613611 - FilenamesRef: 0xB8050C68267FC0DD + FilenamesRef: 0x6BBCABDA409AED26 Filenames: - - '/tmp/branch-templates.cpp' + - branch-templates.cpp Expressions: - [ { Ref: 0 }, { Ref: 1 } ] Records: @@ -73,20 +75,20 @@ Sections: - { File: 0, dLoc: [ 0, 6, 0, 7 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } - { File: 0, dLoc: [ 0, 8, 1, 5 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 1, 5, 0, 13 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Sub: 0 } - { File: 0, dLoc: [ 0, 14, 2, 5 ], isGap: true, Sub: 0 } - { File: 0, dLoc: [ 2, 5, 0, 13 ], Sub: 0 } - - { File: 0, dLoc: [ 0, 13, 1, 3 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 0, 14, 1, 3 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 3, 1, 2 ], Zero: { } } - - Name: __llvm_covfun + - Name: '__llvm_covfun (3)' Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovFun: - FuncName: _Z4funcIfEiT_ Signature: 0x292613611 - FilenamesRef: 0xB8050C68267FC0DD + FilenamesRef: 0x6BBCABDA409AED26 Filenames: - - '/tmp/branch-templates.cpp' + - branch-templates.cpp Expressions: - [ { Ref: 0 }, { Ref: 1 } ] Records: @@ -95,21 +97,22 @@ Sections: - { File: 0, dLoc: [ 0, 6, 0, 7 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 } } } - { File: 0, dLoc: [ 0, 8, 1, 5 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 1, 5, 0, 13 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 13, 0, 14 ], isGap: true, Sub: 0 } - { File: 0, dLoc: [ 0, 14, 2, 5 ], isGap: true, Sub: 0 } - { File: 0, dLoc: [ 2, 5, 0, 13 ], Sub: 0 } - - { File: 0, dLoc: [ 0, 13, 1, 3 ], isGap: true, Zero: { } } + - { File: 0, dLoc: [ 0, 14, 1, 3 ], isGap: true, Zero: { } } - { File: 0, dLoc: [ 1, 3, 1, 2 ], Zero: { } } - Name: __llvm_covmap Type: SHT_PROGBITS + Flags: [ SHF_GNU_RETAIN ] AddressAlign: 0x8 CovMap: - - Version: 3 - FnBlobHash: 0xB8050C68267FC0DD + - Version: 6 + FnBlobHash: 0x6BBCABDA409AED26 Filenames: - - '/tmp/branch-templates.cpp' + - branch-templates.cpp - Name: __llvm_prf_names Type: SHT_PROGBITS + Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] AddressAlign: 0x1 PrfNames: - Names: @@ -120,39 +123,42 @@ Sections: - Type: SectionHeaderTable Sections: - Name: .strtab - - Name: '__llvm_covfun (3)' + - Name: __llvm_covfun - Name: '__llvm_covfun (1)' - Name: '__llvm_covfun (2)' - - Name: __llvm_covfun + - Name: '__llvm_covfun (3)' - Name: __llvm_covmap - Name: __llvm_prf_names - Name: .symtab Symbols: + - Name: __llvm_covmap + Type: STT_SECTION + Section: __llvm_covmap - Name: __llvm_prf_names Type: STT_SECTION Section: __llvm_prf_names - - Name: __covrec_1AE4A33DBC4014ACu + - Name: __covrec_DB956436E78DD5FAu Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0x66 + Size: 0x79 Other: [ STV_HIDDEN ] - Name: __covrec_3EE4E05972712754u Type: STT_OBJECT Section: '__llvm_covfun (1)' Binding: STB_WEAK - Size: 0x66 + Size: 0x5D Other: [ STV_HIDDEN ] - Name: __covrec_AA51052F08227E4Bu Type: STT_OBJECT Section: '__llvm_covfun (2)' Binding: STB_WEAK - Size: 0x66 + Size: 0x5D Other: [ STV_HIDDEN ] - - Name: __covrec_DB956436E78DD5FAu + - Name: __covrec_1AE4A33DBC4014ACu Type: STT_OBJECT Section: '__llvm_covfun (3)' Binding: STB_WEAK - Size: 0x79 + Size: 0x5D Other: [ STV_HIDDEN ] ... diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml index 021b55ecc0996..5070950bdf120 100644 --- a/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.yaml @@ -18,14 +18,15 @@ Sections: Filenames: - mcdc-const-folding.cpp Expressions: + - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 3, 20, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Sub: 0 }, MCDC: [ 1, 2, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 2 }, False: { Sub: 0 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (1)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -38,13 +39,14 @@ Sections: - mcdc-const-folding.cpp Expressions: - [ { Ref: 0 }, { Ref: 1 } ] + - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 6, 20, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 }, MCDC: [ 1, 2, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (2)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -61,7 +63,7 @@ Sections: - { File: 0, dLoc: [ 9, 20, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 1 }, False: { Zero: { } }, MCDC: [ 1, 2, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 2 }, False: { Sub: 0 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (3)' @@ -82,7 +84,7 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 1 }, False: { Sub: 0 }, MCDC: [ 1, 2, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 2 }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (4)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -94,14 +96,15 @@ Sections: Filenames: - mcdc-const-folding.cpp Expressions: + - [ { Ref: 0 }, { Ref: 1 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 15, 20, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Zero: { } }, MCDC: [ 1, 0, 2 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 0 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (5)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -114,13 +117,14 @@ Sections: - mcdc-const-folding.cpp Expressions: - [ { Ref: 0 }, { Ref: 1 } ] + - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 18, 20, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Ref: 1 }, MCDC: [ 1, 0, 2 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (6)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -137,7 +141,7 @@ Sections: - { File: 0, dLoc: [ 21, 20, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Ref: 1 }, MCDC: [ 1, 0, 2 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 0 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (7)' @@ -158,7 +162,7 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 18 ], Decision: { BIdx: 3, NCond: 2 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Ref: 1 }, MCDC: [ 1, 0, 2 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (8)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -170,6 +174,7 @@ Sections: Filenames: - mcdc-const-folding.cpp Expressions: + - [ { Ref: 0 }, { Ref: 3 } ] - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: @@ -177,11 +182,11 @@ Sections: - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 3, 0 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Sub: 0 }, MCDC: [ 1, 3, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Sub: 0 }, MCDC: [ 3, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Sub: 1 }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (9)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -194,6 +199,7 @@ Sections: - mcdc-const-folding.cpp Expressions: - [ { Ref: 0 }, { Ref: 3 } ] + - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 31, 28, 2, 2 ], Ref: 0 } @@ -202,9 +208,9 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 3 }, False: { Sub: 0 }, MCDC: [ 1, 3, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Sub: 1 }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (10)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -223,7 +229,7 @@ Sections: - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 3, 0 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 3 }, False: { Zero: { } }, MCDC: [ 1, 3, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Sub: 0 }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } @@ -248,7 +254,7 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 3 }, False: { Sub: 0 }, MCDC: [ 1, 3, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Zero: { } }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (12)' @@ -262,6 +268,7 @@ Sections: Filenames: - mcdc-const-folding.cpp Expressions: + - [ { Ref: 0 }, { Ref: 3 } ] - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: @@ -269,11 +276,11 @@ Sections: - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 0, 3 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Zero: { } }, MCDC: [ 1, 0, 3 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 0 }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 2 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (13)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -286,6 +293,7 @@ Sections: - mcdc-const-folding.cpp Expressions: - [ { Ref: 0 }, { Ref: 3 } ] + - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 43, 28, 2, 2 ], Ref: 0 } @@ -294,9 +302,9 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Ref: 3 }, MCDC: [ 1, 0, 3 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Zero: { } }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 2 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (14)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -315,7 +323,7 @@ Sections: - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 18 ], Ref: 0 } - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 1, 0, 3 ] } } + - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Zero: { } }, False: { Ref: 3 }, MCDC: [ 1, 0, 3 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 0 }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } @@ -340,7 +348,7 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Ref: 3 }, MCDC: [ 1, 0, 3 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (16)' @@ -356,6 +364,7 @@ Sections: Expressions: - [ { Ref: 0 }, { Ref: 3 } ] - [ { Ref: 3 }, { Ref: 4 } ] + - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 53, 28, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } @@ -365,7 +374,7 @@ Sections: - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Sub: 1 }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Zero: { } }, False: { Sub: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (17)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -378,6 +387,7 @@ Sections: - mcdc-const-folding.cpp Expressions: - [ { Ref: 0 }, { Ref: 3 } ] + - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 56, 28, 2, 2 ], Ref: 0 } @@ -386,9 +396,9 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 3 }, False: { Sub: 0 }, MCDC: [ 1, 3, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Sub: 1 }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (18)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -411,7 +421,7 @@ Sections: - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Sub: 1 }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (19)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -432,7 +442,7 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Ref: 3 }, False: { Sub: 0 }, MCDC: [ 1, 3, 0 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 2, 0 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Ref: 4 }, False: { Zero: { } }, MCDC: [ 3, 2, 0 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Ref: 2 }, False: { Sub: 1 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (20)' @@ -448,6 +458,7 @@ Sections: Expressions: - [ { Ref: 0 }, { Ref: 3 } ] - [ { Ref: 3 }, { Ref: 4 } ] + - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 65, 28, 2, 2 ], Ref: 0 } - { File: 0, dLoc: [ 1, 12, 0, 13 ], Ref: 0 } @@ -457,7 +468,7 @@ Sections: - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 2 }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (21)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -470,6 +481,7 @@ Sections: - mcdc-const-folding.cpp Expressions: - [ { Ref: 0 }, { Ref: 3 } ] + - [ { Ref: 3 }, { Ref: 4 } ] - [ { Ref: 1 }, { Ref: 2 } ] Records: - { File: 0, dLoc: [ 68, 28, 2, 2 ], Ref: 0 } @@ -478,9 +490,9 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Ref: 3 }, MCDC: [ 1, 0, 3 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Zero: { } }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 2 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (22)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -503,7 +515,7 @@ Sections: - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Sub: 1 }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Zero: { } }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (23)' Type: SHT_PROGBITS Flags: [ SHF_GNU_RETAIN ] @@ -524,7 +536,7 @@ Sections: - { File: 0, dLoc: [ 0, 12, 0, 23 ], Decision: { BIdx: 4, NCond: 3 } } - { File: 0, dLoc: [ 0, 12, 0, 13 ], Branch: { True: { Sub: 0 }, False: { Ref: 3 }, MCDC: [ 1, 0, 3 ] } } - { File: 0, dLoc: [ 0, 17, 0, 18 ], Ref: 3 } - - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 17, 0, 18 ], Branch: { True: { Zero: { } }, False: { Ref: 4 }, MCDC: [ 3, 0, 2 ] } } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Ref: 1 } - { File: 0, dLoc: [ 0, 22, 0, 23 ], Branch: { True: { Sub: 1 }, False: { Ref: 2 }, MCDC: [ 2, 0, 0 ] } } - Name: '__llvm_covfun (24)' @@ -626,13 +638,13 @@ Symbols: Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0x4C + Size: 0x4E Other: [ STV_HIDDEN ] - Name: __covrec_8B3F25D7C81A6992u Type: STT_OBJECT Section: '__llvm_covfun (1)' Binding: STB_WEAK - Size: 0x4C + Size: 0x4E Other: [ STV_HIDDEN ] - Name: __covrec_5B9A380DA46F7D9Au Type: STT_OBJECT @@ -650,13 +662,13 @@ Symbols: Type: STT_OBJECT Section: '__llvm_covfun (4)' Binding: STB_WEAK - Size: 0x4C + Size: 0x4E Other: [ STV_HIDDEN ] - Name: __covrec_F192047347FC6909u Type: STT_OBJECT Section: '__llvm_covfun (5)' Binding: STB_WEAK - Size: 0x4C + Size: 0x4E Other: [ STV_HIDDEN ] - Name: __covrec_796F3F96F70ECB0Eu Type: STT_OBJECT @@ -674,13 +686,13 @@ Symbols: Type: STT_OBJECT Section: '__llvm_covfun (8)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_539FFBCF164E2424u Type: STT_OBJECT Section: '__llvm_covfun (9)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_7D62D12E1DCD9CCCu Type: STT_OBJECT @@ -698,13 +710,13 @@ Symbols: Type: STT_OBJECT Section: '__llvm_covfun (12)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_AC33A01E6046BD54u Type: STT_OBJECT Section: '__llvm_covfun (13)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_3BA1ADB6033E9539u Type: STT_OBJECT @@ -722,13 +734,13 @@ Symbols: Type: STT_OBJECT Section: '__llvm_covfun (16)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_767C49B7AF88DB98u Type: STT_OBJECT Section: '__llvm_covfun (17)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_BAEE555D93576359u Type: STT_OBJECT @@ -746,13 +758,13 @@ Symbols: Type: STT_OBJECT Section: '__llvm_covfun (20)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_ACA4E62EF2CC665Eu Type: STT_OBJECT Section: '__llvm_covfun (21)' Binding: STB_WEAK - Size: 0x62 + Size: 0x64 Other: [ STV_HIDDEN ] - Name: __covrec_E8A2769910EA4D7Cu Type: STT_OBJECT diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml index 66fac0747dee5..5b7cfeb433ace 100644 --- a/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-const.yaml @@ -19,6 +19,7 @@ Sections: - mcdc-const.cpp Expressions: - [ { Ref: 0 }, { Ref: 5 } ] + - [ { Ref: 4 }, { Ref: 7 } ] - [ { Ref: 7 }, { Ref: 8 } ] Records: - { File: 0, dLoc: [ 10, 43, 4, 2 ], Ref: 0 } @@ -30,14 +31,14 @@ Sections: - { File: 0, dLoc: [ 0, 8, 0, 9 ], Ref: 0 } - { File: 0, dLoc: [ 0, 8, 0, 9 ], Branch: { True: { Ref: 5 }, False: { Sub: 0 }, MCDC: [ 1, 4, 3 ] } } - { File: 0, dLoc: [ 0, 13, 0, 14 ], Ref: 5 } - - { File: 0, dLoc: [ 0, 13, 0, 14 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 4, 0, 3 ] } } + - { File: 0, dLoc: [ 0, 13, 0, 14 ], Branch: { True: { Ref: 6 }, False: { Zero: { } }, MCDC: [ 4, 0, 3 ] } } - { File: 0, dLoc: [ 0, 19, 0, 27 ], Ref: 4 } - { File: 0, dLoc: [ 0, 20, 0, 21 ], Ref: 4 } - - { File: 0, dLoc: [ 0, 20, 0, 21 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 3, 5, 2 ] } } + - { File: 0, dLoc: [ 0, 20, 0, 21 ], Branch: { True: { Zero: { } }, False: { Sub: 1 }, MCDC: [ 3, 5, 2 ] } } - { File: 0, dLoc: [ 0, 25, 0, 26 ], Ref: 7 } - - { File: 0, dLoc: [ 0, 25, 0, 26 ], Branch: { True: { Ref: 8 }, False: { Sub: 1 }, MCDC: [ 5, 0, 2 ] } } + - { File: 0, dLoc: [ 0, 25, 0, 26 ], Branch: { True: { Ref: 8 }, False: { Sub: 2 }, MCDC: [ 5, 0, 2 ] } } - { File: 0, dLoc: [ 0, 31, 0, 32 ], Ref: 2 } - - { File: 0, dLoc: [ 0, 31, 0, 32 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 0, dLoc: [ 0, 31, 0, 32 ], Branch: { True: { Zero: { } }, False: { Ref: 3 }, MCDC: [ 2, 0, 0 ] } } - { File: 0, dLoc: [ 0, 33, 1, 5 ], isGap: true, Ref: 1 } - { File: 0, dLoc: [ 1, 5, 0, 36 ], Ref: 1 } - Name: '__llvm_covfun (1)' @@ -91,7 +92,7 @@ Symbols: Type: STT_OBJECT Section: __llvm_covfun Binding: STB_WEAK - Size: 0xA2 + Size: 0xA4 Other: [ STV_HIDDEN ] - Name: __covrec_DB956436E78DD5FAu Type: STT_OBJECT diff --git a/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.yaml b/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.yaml index 24847ae952a68..05f86db4fd91a 100644 --- a/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.yaml +++ b/llvm/test/tools/llvm-cov/Inputs/mcdc-macro.yaml @@ -91,7 +91,7 @@ Sections: - { File: 0, dLoc: [ 1, 5, 0, 12 ], Ref: 13 } - { File: 1, dLoc: [ 2, 11, 0, 12 ], Ref: 8 } - { File: 1, dLoc: [ 0, 11, 0, 12 ], Ref: 0 } - - { File: 1, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 5, 4, 2 ] } } + - { File: 1, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 9 }, False: { Zero: { } }, MCDC: [ 5, 4, 2 ] } } - { File: 2, dLoc: [ 3, 11, 0, 19 ], Ref: 6 } - { File: 2, dLoc: [ 0, 11, 0, 30 ], Ref: 0 } - { File: 2, dLoc: [ 0, 11, 0, 30 ], Ref: 0 } @@ -101,12 +101,12 @@ Sections: - { File: 2, dLoc: [ 0, 23, 0, 30 ], Branch: { True: { Ref: 5 }, False: { Sub: 6 }, MCDC: [ 3, 0, 2 ] } } - { File: 2, dLoc: [ 0, 24, 0, 25 ], Expansion: 8 } - { File: 3, dLoc: [ 2, 11, 0, 12 ], Ref: 11 } - - { File: 3, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } + - { File: 3, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 12 }, False: { Zero: { } }, MCDC: [ 2, 0, 0 ] } } - { File: 4, dLoc: [ 1, 11, 0, 12 ], Ref: 16 } - { File: 4, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 17 }, False: { Sub: 7 }, MCDC: [ 4, 0, 2 ] } } - { File: 5, dLoc: [ 2, 11, 0, 12 ], Ref: 14 } - { File: 5, dLoc: [ 0, 11, 0, 12 ], Ref: 14 } - - { File: 5, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Zero: { } }, False: { Zero: { } }, MCDC: [ 2, 6, 0 ] } } + - { File: 5, dLoc: [ 0, 11, 0, 12 ], Branch: { True: { Ref: 20 }, False: { Zero: { } }, MCDC: [ 2, 6, 0 ] } } - { File: 6, dLoc: [ 4, 11, 0, 12 ], Expansion: 9 } - { File: 7, dLoc: [ 1, 11, 0, 12 ], Ref: 6 } - { File: 8, dLoc: [ 1, 11, 0, 12 ], Ref: 4 } diff --git a/llvm/test/tools/llvm-cov/Inputs/yaml.makefile b/llvm/test/tools/llvm-cov/Inputs/yaml.makefile index fd29aa26baed1..1f6d4d7a8f444 100644 --- a/llvm/test/tools/llvm-cov/Inputs/yaml.makefile +++ b/llvm/test/tools/llvm-cov/Inputs/yaml.makefile @@ -4,6 +4,19 @@ # cd /path/to/llvm-project/llvm/test/tools/llvm-cov/Inputs # PATH=/path/to/build/bin:$PATH make -f yaml.makefile *.yaml +CFLAGS_COVMAP = -fcoverage-compilation-dir=. \ + -mllvm -enable-name-compression=false \ + -fprofile-instr-generate -fcoverage-mapping \ + $(if $(filter mcdc-%, $*), $(CFLAGS_MCDC)) + +CFLAGS_MCDC = -fcoverage-mcdc + +%.o: %.cpp + clang++ $< -c -o $@ $(CFLAGS_COVMAP) + +%.o: %.c + clang $< -c -o $@ $(CFLAGS_COVMAP) + %.covmap.o: %.o llvm-objcopy \ --only-section=__llvm_covfun \ @@ -14,3 +27,50 @@ %.yaml: %.covmap.o obj2yaml $< > $@ + +%.exe: %.o + clang++ -fprofile-instr-generate $^ -o $@ + +ARGS_branch-logical-mixed := \ + 0 0; \ + 0 1; \ + 1 0; \ + 1 1 + +ARGS_branch-macros := \ + 0 1; \ + 1 0; \ + 1 1 + +ARGS_branch-showBranchPercentage := \ + 0 1; \ + 1 1; \ + 2 2; \ + 4 0; \ + 5 0; \ + 1 + +ARGS_mcdc-const-folding := \ + 0 1; \ + 1 0; \ + 1 1; \ + 1 1 + +%.profdata: %.exe + -find -name '$*.*.profraw' | xargs rm -fv + @if [ "$(ARGS_$*)" = "" ]; then \ + echo "Executing: $<"; \ + LLVM_PROFILE_FILE=$*.%p.profraw ./$<; \ + else \ + LLVM_PROFILE_FILE=$*.%p.profraw; \ + export LLVM_PROFILE_FILE; \ + for xcmd in $(shell echo "$(ARGS_$*)" | tr ';[:blank:]' ' %'); do \ + cmd=$$(echo "$$xcmd" | tr '%' ' '); \ + echo "Executing series: $< $$cmd"; \ + eval "./$< $$cmd"; \ + done; \ + fi + find -name '$*.*.profraw' | xargs llvm-profdata merge --sparse -o $@ + +%.proftext: %.profdata + llvm-profdata merge --text -o $@ $< diff --git a/llvm/test/tools/llvm-cov/branch-c-general.test b/llvm/test/tools/llvm-cov/branch-c-general.test index 8c58c1536f158..dd9c92ee50135 100644 --- a/llvm/test/tools/llvm-cov/branch-c-general.test +++ b/llvm/test/tools/llvm-cov/branch-c-general.test @@ -2,8 +2,8 @@ // RUN: yaml2obj %S/Inputs/branch-c-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-c-general.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT // CHECK: simple_loops() // CHECK: Branch (9:15): [True: 100, False: 1] @@ -17,9 +17,9 @@ // CHECK: Branch (21:16): [True: 33, False: 17] // CHECK: Branch (22:11): [True: 33, False: 0] // CHECK: Branch (24:11): [True: 16, False: 1] -// CHECK: Branch (27:9): [Folded - Ignored] +// CHECK: Branch (27:9): [True: 100, Folded] // CHECK: Branch (27:14): [True: 99, False: 1] -// CHECK: Branch (28:9): [Folded - Ignored] +// CHECK: Branch (28:9): [Folded, False: 100] // CHECK: Branch (28:14): [True: 99, False: 1] // CHECK: early_exits() @@ -40,9 +40,9 @@ // CHECK: Branch (75:9): [True: 0, False: 1] // CHECK: Branch (83:7): [True: 2, False: 1] // CHECK: Branch (86:10): [True: 0, False: 1] -// CHECK: Branch (89:5): [True: 1, False: 2] -// CHECK: Branch (91:5): [True: 1, False: 2] -// CHECK: Branch (93:5): [True: 1, False: 2] +// CHECK: Branch (89:5): [True: 1, Folded] +// CHECK: Branch (91:5): [True: 1, Folded] +// CHECK: Branch (93:5): [True: 1, Folded] // CHECK: Branch (98:15): [True: 10, False: 1] // CHECK: Branch (101:9): [True: 0, False: 0] // CHECK: Branch (103:9): [True: 9, False: 1] @@ -50,34 +50,34 @@ // CHECK: switches() // CHECK: Branch (113:3): [True: 1, Folded] // CHECK: Branch (117:63): [True: 15, False: 0] -// CHECK: Branch (119:5): [True: 1, False: 14] +// CHECK: Branch (119:5): [True: 1, Folded] // CHECK: Branch (120:11): [True: 0, False: 1] -// CHECK: Branch (122:5): [True: 2, False: 13] +// CHECK: Branch (122:5): [True: 2, Folded] // CHECK: Branch (123:11): [True: 2, False: 1] -// CHECK: Branch (125:5): [True: 3, False: 12] +// CHECK: Branch (125:5): [True: 3, Folded] // CHECK: Branch (126:11): [True: 3, False: 0] -// CHECK: Branch (128:5): [True: 4, False: 11] +// CHECK: Branch (128:5): [True: 4, Folded] // CHECK: Branch (129:11): [True: 4, False: 0] // CHECK: Branch (131:7): [True: 4, Folded] // CHECK: Branch (132:13): [True: 4, False: 0] -// CHECK: Branch (136:5): [True: 5, False: 10] +// CHECK: Branch (136:5): [True: 5, Folded] // CHECK: Branch (137:11): [True: 1, False: 4] // CHECK: Branch (143:7): [True: 0, False: 0] // CHECK: big_switch() // CHECK: Branch (148:19): [True: 32, False: 1] -// CHECK: Branch (150:5): [True: 1, False: 31] +// CHECK: Branch (150:5): [True: 1, Folded] // CHECK: Branch (151:11): [True: 0, False: 1] -// CHECK: Branch (153:5): [True: 1, False: 31] +// CHECK: Branch (153:5): [True: 1, Folded] // CHECK: Branch (154:11): [True: 1, False: 1] -// CHECK: Branch (156:5): [True: 11, False: 21] +// CHECK: Branch (156:5): [True: 11, Folded] // CHECK: Branch (157:11): [True: 11, False: 0] -// CHECK: Branch (161:5): [True: 1, False: 31] +// CHECK: Branch (161:5): [True: 1, Folded] // CHECK: Branch (162:11): [True: 1, False: 0] -// CHECK: Branch (164:5): [True: 15, False: 17] +// CHECK: Branch (164:5): [True: 15, Folded] // CHECK: Branch (165:11): [True: 15, False: 0] // CHECK: Branch (170:11): [True: 1, False: 0] -// CHECK: Branch (172:5): [True: 2, False: 30] +// CHECK: Branch (172:5): [True: 2, Folded] // CHECK: Branch (173:11): [True: 2, False: 0] // CHECK: boolean_operators() @@ -117,34 +117,34 @@ // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover // REPORT-NEXT: --- -// REPORT-NEXT: simple_loops 8 0 100.00% 9 0 100.00% 6 0 100.00% -// REPORT-NEXT: conditionals 24 0 100.00% 15 0 100.00% 16 2 87.50% -// REPORT-NEXT: early_exits 20 4 80.00% 25 2 92.00% 16 6 62.50% -// REPORT-NEXT: jumps 39 12 69.23% 48 2 95.83% 26 9 65.38% -// REPORT-NEXT: switches 28 5 82.14% 38 4 89.47% 28 7 75.00% -// REPORT-NEXT: big_switch 25 1 96.00% 32 0 100.00% 30 6 80.00% -// REPORT-NEXT: boolean_operators 16 0 100.00% 13 0 100.00% 22 2 90.91% -// REPORT-NEXT: boolop_loops 19 0 100.00% 14 0 100.00% 16 2 87.50% -// REPORT-NEXT: conditional_operator 4 2 50.00% 8 0 100.00% 4 2 50.00% -// REPORT-NEXT: do_fallthrough 9 0 100.00% 12 0 100.00% 6 0 100.00% +// REPORT-NEXT: simple_loops 8 0 100.00% 8 0 100.00% 6 0 100.00% +// REPORT-NEXT: conditionals 24 0 100.00% 13 0 100.00% 18 2 88.89% +// REPORT-NEXT: early_exits 20 4 80.00% 19 2 89.47% 16 6 62.50% +// REPORT-NEXT: jumps 39 12 69.23% 38 3 92.11% 24 10 58.33% +// REPORT-NEXT: switches 27 4 85.19% 30 2 93.33% 24 8 66.67% +// REPORT-NEXT: big_switch 25 1 96.00% 26 0 100.00% 23 6 73.91% +// REPORT-NEXT: boolean_operators 16 0 100.00% 9 0 100.00% 22 2 90.91% +// REPORT-NEXT: boolop_loops 19 0 100.00% 9 0 100.00% 16 2 87.50% +// REPORT-NEXT: conditional_operator 6 2 66.67% 5 0 100.00% 4 2 50.00% +// REPORT-NEXT: do_fallthrough 9 0 100.00% 9 0 100.00% 6 0 100.00% // REPORT-NEXT: main 1 0 100.00% 16 0 100.00% 0 0 0.00% -// REPORT-NEXT: c-general.c:static_func 4 0 100.00% 4 0 100.00% 2 0 100.00% +// REPORT-NEXT: static_func 4 0 100.00% 4 0 100.00% 2 0 100.00% // REPORT-NEXT: --- -// REPORT-NEXT: TOTAL 197 24 87.82% 234 8 96.58% 172 36 79.07% +// REPORT-NEXT: TOTAL 198 23 88.38% 186 7 96.24% 161 38 76.40% // Test file-level report. // RUN: llvm-profdata merge %S/Inputs/branch-c-general.proftext -o %t.profdata -// RUN: llvm-cov report %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=FILEREPORT -// FILEREPORT: TOTAL{{.*}}172 36 79.07% +// RUN: llvm-cov report %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=FILEREPORT +// FILEREPORT: TOTAL{{.*}}161 38 76.40% // Test color True/False output. -// RUN: llvm-cov show --use-color --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=USECOLOR +// RUN: llvm-cov show --use-color --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=USECOLOR // USECOLOR: Branch ({{[0-9]+}}:7): {{.*}}: 0, {{.*}}0] // Test html output. -// RUN: llvm-cov show --show-branch-summary --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c -format html -o %t.html.dir -// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/tmp/branch-c-general.c.html %s -// HTML-COUNT-89: Branch ( +// RUN: llvm-cov show --show-branch-summary --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs %S/Inputs/branch-c-general.c -format html -o %t.html.dir +// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/branch-c-general.c.html %s +// HTML-COUNT-91: Branch ( // HTML-NOT: Branch ( // RUN: FileCheck -check-prefix HTML-INDEX -input-file %t.html.dir/index.html %s @@ -158,10 +158,10 @@ // HTML-INDEX: // HTML-INDEX: 100.00% (12/12) // HTML-INDEX: -// HTML-INDEX: 96.58% (226/234) +// HTML-INDEX: 96.24% (179/186) // HTML-INDEX: -// HTML-INDEX: 87.82% (173/197) +// HTML-INDEX: 88.38% (175/198) // HTML-INDEX: -// HTML-INDEX: 79.07% (136/172) +// HTML-INDEX: 76.40% (123/161) // HTML-INDEX: // HTML-INDEX: Totals diff --git a/llvm/test/tools/llvm-cov/branch-export-json.test b/llvm/test/tools/llvm-cov/branch-export-json.test index edeb23c9161d2..8d45270f781a4 100644 --- a/llvm/test/tools/llvm-cov/branch-export-json.test +++ b/llvm/test/tools/llvm-cov/branch-export-json.test @@ -14,12 +14,12 @@ // CHECK: 32,8,32,14,4,1,0,0,4 // CHECK: 32,18,32,24,1,3,0,0,4 // CHECK: 34,15,34,20,1,5,0,0,4 -// CHECK: 41,5,41,11,1,4,0,0,4 -// CHECK: 43,5,43,11,1,4,0,0,4 -// CHECK: 45,5,45,11,0,5,0,0,4 -// CHECK: 47,5,47,12,3,2,0,0,4 +// CHECK: 41,5,41,11,1,0,0,0,4 +// CHECK: 43,5,43,11,1,0,0,0,4 +// CHECK: 45,5,45,11,0,0,0,0,4 +// CHECK: 47,5,47,12,3,0,0,0,4 // CHECK: 53,12,53,20,50,5,0,0,4 -// CHECK: {"count":30,"covered":26,"notcovered":4,"percent":86.666666666666671} +// CHECK: {"count":26,"covered":22,"notcovered":4,"percent":84.615384615384613} // Check recursive macro-expansions. // RUN: yaml2obj %S/Inputs/branch-macros.yaml -o %t-branch-macros.o diff --git a/llvm/test/tools/llvm-cov/branch-export-lcov.test b/llvm/test/tools/llvm-cov/branch-export-lcov.test index 60b2fed2f3d2c..e73b9e3c5deac 100644 --- a/llvm/test/tools/llvm-cov/branch-export-lcov.test +++ b/llvm/test/tools/llvm-cov/branch-export-lcov.test @@ -25,18 +25,18 @@ // CHECK-DAG: BRDA:34,0,0,1 // CHECK-DAG: BRDA:34,0,1,5 // CHECK-DAG: BRDA:41,0,0,1 -// CHECK-DAG: BRDA:41,0,1,4 +// CHECK-DAG: BRDA:41,0,1,0 // CHECK-DAG: BRDA:43,0,0,1 -// CHECK-DAG: BRDA:43,0,1,4 -// CHECK-DAG: BRDA:45,0,0,0 -// CHECK-DAG: BRDA:45,0,1,5 +// CHECK-DAG: BRDA:43,0,1,0 +// CHECK-DAG: BRDA:45,0,0,- +// CHECK-DAG: BRDA:45,0,1,- // CHECK-DAG: BRDA:47,0,0,3 -// CHECK-DAG: BRDA:47,0,1,2 +// CHECK-DAG: BRDA:47,0,1,0 // CHECK-DAG: BRDA:53,0,0,50 // CHECK-DAG: BRDA:53,0,1,5 // CHECK-NOT: BRDA -// CHECK: BRF:30 -// CHECK: BRH:26 +// CHECK: BRF:26 +// CHECK: BRH:22 // Check recursive macro-expansions. // RUN: yaml2obj %S/Inputs/branch-macros.yaml -o %t-branch-macros.o diff --git a/llvm/test/tools/llvm-cov/branch-logical-mixed.test b/llvm/test/tools/llvm-cov/branch-logical-mixed.test index f570aa999fa4a..4d42cd0ae8803 100644 --- a/llvm/test/tools/llvm-cov/branch-logical-mixed.test +++ b/llvm/test/tools/llvm-cov/branch-logical-mixed.test @@ -1,7 +1,7 @@ // RUN: yaml2obj %S/Inputs/branch-logical-mixed.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-logical-mixed.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-logical-mixed.cpp -// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-logical-mixed.cpp +// RUN: llvm-cov show --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/Inputs/branch-logical-mixed.cpp +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/branch-logical-mixed.cpp | FileCheck %s -check-prefix=REPORT // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover diff --git a/llvm/test/tools/llvm-cov/branch-macros.test b/llvm/test/tools/llvm-cov/branch-macros.test index 5d012bb0ec039..8242b84bfffa7 100644 --- a/llvm/test/tools/llvm-cov/branch-macros.test +++ b/llvm/test/tools/llvm-cov/branch-macros.test @@ -1,12 +1,12 @@ // RUN: yaml2obj %S/Inputs/branch-macros.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-macros.proftext -o %t.profdata -// RUN: llvm-cov show --show-expansions --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-macros.cpp -// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-macros.cpp | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show --show-expansions --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/Inputs/branch-macros.cpp +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/branch-macros.cpp | FileCheck %s -check-prefix=REPORT // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover // REPORT-NEXT: --- -// REPORT-NEXT: _Z4funcii 28 4 85.71% 18 0 100.00% 30 14 53.33% -// REPORT-NEXT: _Z5func2ii 13 1 92.31% 8 0 100.00% 10 2 80.00% +// REPORT-NEXT: _Z4funcii 28 4 85.71% 8 0 100.00% 30 14 53.33% +// REPORT-NEXT: _Z5func2ii 13 1 92.31% 4 0 100.00% 10 2 80.00% // REPORT-NEXT: main 1 0 100.00% 6 0 100.00% 0 0 0.00% // REPORT-NEXT: --- -// REPORT-NEXT: TOTAL 42 5 88.10% 32 0 100.00% 40 16 60.00% +// REPORT-NEXT: TOTAL 42 5 88.10% 18 0 100.00% 40 16 60.00% diff --git a/llvm/test/tools/llvm-cov/branch-noShowBranch.test b/llvm/test/tools/llvm-cov/branch-noShowBranch.test index 4f16d6629bf12..253f63a9e059d 100644 --- a/llvm/test/tools/llvm-cov/branch-noShowBranch.test +++ b/llvm/test/tools/llvm-cov/branch-noShowBranch.test @@ -1,8 +1,8 @@ // RUN: yaml2obj %S/Inputs/branch-c-general.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-c-general.proftext -o %t.profdata -// RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %s -// RUN: llvm-cov report %t.o --show-branch-summary=false -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s +// RUN: llvm-cov report %t.o --show-branch-summary=false -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/branch-c-general.c | FileCheck %s -check-prefix=REPORT // CHECK-NOT: | Branch @@ -21,6 +21,6 @@ // REPORT-NOT: do_fallthrough 9 0 100.00% 12 0 100.00% 6 0 100.00% // REPORT-NOT: main 1 0 100.00% 16 0 100.00% 0 0 0.00% // REPORT-NOT: c-general.c:static_func 4 0 100.00% 4 0 100.00% 2 0 100.00% -// REPORT: TOTAL 197 24 87.82% 234 8 96.58% -// REPORT-NOT: TOTAL 197 24 87.82% 234 13 94.44% 174 38 78.16% +// REPORT: TOTAL 198 23 88.38% 186 7 96.24% +// REPORT-NOT: TOTAL 198 23 88.38% 186 7 96.24% 174 38 78.16% diff --git a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test index 5365d4419c2e9..6bd7c647844f9 100644 --- a/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test +++ b/llvm/test/tools/llvm-cov/branch-showBranchPercentage.test @@ -3,13 +3,13 @@ // RUN: rm -rf %t.html.dir // RUN: yaml2obj %S/Inputs/branch-showBranchPercentage.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-showBranchPercentage.c +// RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/Inputs/branch-showBranchPercentage.c // RUN: llvm-profdata merge %S/Inputs/branch-showBranchPercentage.proftext -o %t.profdata -// RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -format html -o %t.html.dir +// RUN: llvm-cov show --show-branches=percent %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -format html -o %t.html.dir // Test html output. -// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/tmp/branch-showBranchPercentage.c.html %s +// RUN: FileCheck -check-prefix=HTML -input-file=%t.html.dir/coverage/branch-showBranchPercentage.c.html %s // HTML: Branch ({{.*}}16.67%,{{.*}}83.33%] // HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] // HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] @@ -20,8 +20,8 @@ // HTML: Branch ({{.*}}80.00%,{{.*}}20.00%] // HTML: Branch ({{.*}}25.00%,{{.*}}75.00%] // HTML: Branch ({{.*}}16.67%,{{.*}}83.33%] -// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] -// HTML: Branch ({{.*}}20.00%,{{.*}}80.00%] -// HTML: Branch ({{.*}}0.00%,{{.*}}100.00%] -// HTML: Branch ({{.*}}60.00%,{{.*}}40.00%] +// HTML: Branch ({{.*}}100.00%,{{.*}}Folded] +// HTML: Branch ({{.*}}100.00%,{{.*}}Folded] +// HTML: Branch ({{.*}}0.00%,{{.*}}Folded] +// HTML: Branch ({{.*}}100.00%,{{.*}}Folded] // HTML: Branch ({{.*}}90.91%,{{.*}}9.09%] diff --git a/llvm/test/tools/llvm-cov/branch-templates.test b/llvm/test/tools/llvm-cov/branch-templates.test index b29e2a9d033c2..a4cfc758b4479 100644 --- a/llvm/test/tools/llvm-cov/branch-templates.test +++ b/llvm/test/tools/llvm-cov/branch-templates.test @@ -1,8 +1,8 @@ // RUN: yaml2obj %S/Inputs/branch-templates.yaml -o %t.o // RUN: llvm-profdata merge %S/Inputs/branch-templates.proftext -o %t.profdata -// RUN: llvm-cov show --show-expansions --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-templates.cpp -// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-templates.cpp | FileCheck %s -check-prefix=REPORT -// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %s -check-prefix=REPORTFILE +// RUN: llvm-cov show --show-expansions --show-branches=count %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %S/Inputs/branch-templates.cpp +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -show-functions -path-equivalence=.,%S/Inputs %S/Inputs/branch-templates.cpp | FileCheck %s -check-prefix=REPORT +// RUN: llvm-cov report --show-branch-summary %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck %s -check-prefix=REPORTFILE // REPORT: Name Regions Miss Cover Lines Miss Cover Branches Miss Cover // REPORT-NEXT: --- diff --git a/llvm/test/tools/llvm-cov/mcdc-const.test b/llvm/test/tools/llvm-cov/mcdc-const.test index e6abaa1fa6da8..f940ff2ef9259 100644 --- a/llvm/test/tools/llvm-cov/mcdc-const.test +++ b/llvm/test/tools/llvm-cov/mcdc-const.test @@ -6,10 +6,10 @@ // CHECKGENERALCASE: ------------------ // CHECKGENERALCASE-NEXT: | Branch (12:8): [True: 4, False: 1] -// CHECKGENERALCASE-NEXT: | Branch (12:13): [Folded - Ignored] -// CHECKGENERALCASE-NEXT: | Branch (12:20): [Folded - Ignored] +// CHECKGENERALCASE-NEXT: | Branch (12:13): [True: 4, Folded] +// CHECKGENERALCASE-NEXT: | Branch (12:20): [Folded, False: 1] // CHECKGENERALCASE-NEXT: | Branch (12:25): [True: 0, False: 0] -// CHECKGENERALCASE-NEXT: | Branch (12:31): [Folded - Ignored] +// CHECKGENERALCASE-NEXT: | Branch (12:31): [Folded, False: 1] // CHECKGENERALCASE-NEXT: ------------------ // CHECKGENERALCASE-NEXT: |---> MC/DC Decision Region (12:7) to (12:32) // CHECKGENERALCASE-NEXT: | diff --git a/llvm/test/tools/llvm-cov/mcdc-macro.test b/llvm/test/tools/llvm-cov/mcdc-macro.test index 989c7d2fe3039..ec0bb3974984e 100644 --- a/llvm/test/tools/llvm-cov/mcdc-macro.test +++ b/llvm/test/tools/llvm-cov/mcdc-macro.test @@ -4,7 +4,7 @@ // RUN: llvm-profdata merge %S/Inputs/mcdc-macro.proftext -o %t.profdata // RUN: llvm-cov show --show-expansions --show-branches=count --show-mcdc %t.o -instr-profile %t.profdata --compilation-dir=%S/Inputs | FileCheck %s -// CHECK: | | | Branch (2:11): [Folded - Ignored] +// CHECK: | | | Branch (2:11): [True: 1, Folded] // CHECK: | | | Branch (3:11): [True: 1, False: 0] // CHECK: | | | Branch (3:23): [True: 1, False: 0] // CHECK: | Branch (9:7): [True: 1, False: 0] @@ -33,7 +33,7 @@ // CHECK-NEXT: | // CHECK-NEXT: ------------------ -// CHECK: | | | Branch (2:11): [Folded - Ignored] +// CHECK: | | | Branch (2:11): [True: 1, Folded] // CHECK: | Branch (11:7): [True: 1, False: 0] // CHECK-NEXT: ------------------ // CHECK-NEXT: |---> MC/DC Decision Region (11:7) to (11:13) @@ -54,7 +54,7 @@ // CHECK-NEXT: ------------------ // CHECK: | | | Branch (1:11): [True: 1, False: 0] -// CHECK: | | | Branch (2:11): [Folded - Ignored] +// CHECK: | | | Branch (2:11): [True: 0, Folded] // CHECK: | | | | | Branch (3:11): [True: 0, False: 0] // CHECK: | | | | | Branch (3:23): [True: 0, False: 0] // CHECK: | Branch (13:7): [True: 1, False: 0]