| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,177 @@ | ||
| --- !ELF | ||
| FileHeader: | ||
| Class: ELFCLASS64 | ||
| Data: ELFDATA2LSB | ||
| OSABI: ELFOSABI_GNU | ||
| Type: ET_REL | ||
| Machine: EM_X86_64 | ||
| SectionHeaderStringTable: .strtab | ||
| Sections: | ||
| - Name: __llvm_covfun | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: D7878914FBE99B0760000000D136449C106D04004C551E9517F40F4F01010401050109010D010D0E010715080203020F0016200501000F0016050018001B05001C009D8080800805001D010407020A000F200901000A000F09001001858080800809010500080F010600080F00100018200D01001000181001010001 | ||
| - Name: '__llvm_covfun (1)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 83AD05A5F1438E682801000052D33558163C11444C551E9517F40F4F01010101052E0111150E02030113001A2005010013001A05001C001F05002000A1808080080500210B04050109000E2009350009000E09000F009080808008090010020609010B000C200D39000B000C0D000D008E808080080D000E0010350106008C8080800835000C0406350010001520113D00100015110016009780808008110017020611010B000C201541000B000C15000D008E8080800815000E00103D0106008C808080083D000C02063D010B000C201945000B000C19000D008E8080800819000E0010100201005B050109000A050009000F2021000009000A21000E000F202551000E000F1D00100091808080081D00110013050109000A050009000F20002D0009000A2D000E000F205D31000E000F29001000918080800829001100131002010001 | ||
| - Name: '__llvm_covfun (2)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 0449C70428C57369380100003D5C2D0E4B13F9274C551E9517F40F4F010109072D01110D310D310D3123310D1923310D192E01211418021002010001010107000820052500070008050009008A8080800805000A000C100101000103010A0011200931000A00110900120093808080080900130604090209000F200D290009000F0D00100187808080080D0107000C29000D0185808080082901050204290009000E20112D0009000E11000F018780808008110107000F13010402838080800810010100011301030B02130007000820153500070008150009008A8080800815000A000C10010100011F010605041F0109000F201D390009000F1D00100187808080081D0107000D39000E028780808008390207000A39010C001320193D000C00133D001502838080800810010100013D010302023D0007000820214100070008210009008A8080800821000A000C1001010001 | ||
| - Name: '__llvm_covfun (3)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 55947829059F255E140200001B9C495D3463E1D04C551E9517F40F4F010102396D517553013B0E2F02100201000101010F001420055D000F0014000016001905001A009B8080800805001B040400011402858080800810010100230001050104000009000A2009590009000A09000B008C8080800809000C000E5D010402818080800810010100010D0101030D0D0107000820116100070008110009008A8080800811000A000C100101000100010E0283808080081001010001000103210219000A000B201569000A000B15000C008D8080800815000D03041901030204190109000A201D650009000A1D000B008C808080081D000C000E1002010001690103000D69000E0181808080082101011B022501011A022901011902290207000C202D6D0007000C2D000D0185808080082D0105000F6D001002838080800810010100016D0103140203000A000F203175000A000F3100100091808080083100110A043501030904200071010D000E0000100691808080083D01050111203D000005000B00011201858080800841010501122041000005000B00011301858080800845010501112045000005000B7503040283808080081001010001750103080207000F001520498101000F0015510017001A49001B009C8080800849001C0604000115028580808008100101003F0001050304000009000A204D790009000A4D000B008C808080084D000C000E5101030204510109000A20557D0009000A55000B008C8080800855000C000E1002010001 | ||
| - Name: '__llvm_covfun (4)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 7129CA3C268292BFBB0100003E688383C9A099004C551E9517F40F4F01010907390B25051113391125151D151D3541354141016C112502100201011C000217028A80808008090103010A2009000003000A05020402838080800810010100620501031C0203003F0046200D69003F00460F0048004B0D004C00CD808080080D004D1704000119148F80808008150105130F2015000005000B15010B000C20194D000B000C19000D008E8080800819000E001010010100151B0105020C201D000005000B1B010B000C202151000B000C21000D008E8080800821000E001000010D018580808008250105020F2025000005000B25010B000C202955000B000C29000D008E8080800829000E00100001100185808080082D01050A0F202D000005000B2D010B000C203159000B000C31000D008E8080800831000E0010200061010F001000001203918080800839010702112039000007001339010D000E203D5D000D000E3D000F0090808080083D001000123502080285808080081001010001230105020F2041000005000C23010B0017204565000B0017450018018980808008450109000F69020403838080800810010101216902030202690007001120496D0007001149001200938080800849001300151001010001 | ||
| - Name: '__llvm_covfun (5)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 3F4D1C6E6087417B83010000D6FF56B8865A69B64C551E9517F40F4F01010301090D150D153A019301131F0203011300192005610013001909001B001E05001F00A0808080080500201C04000115198C808080080D0105180C200D00000500120D010B000C201145000B000C11000D008E8080800811000E001010010100150B0105020C201500000500120B010B000C201949000B000C19000D008E8080800819000E001000010D0185808080081D0105020C201D00000500201D010B000C20214D000B000C21000D008E8080800821000E001000010D0385808080081001010101250205020C2025000005001325010B000C202951000B000C29000D008E8080800829000E001000010D0185808080082D0105020C202D00000500212D010B000C203155000B000C31000D008E8080800831000E001000010D0385808080081001010101350205020C2035000005002735010B000C203959000B000C39000D008E8080800839000E001000010D0185808080083D0105020C203D000005000C3D010B000C20415D000B000C41000D008E8080800841000E00101004010001 | ||
| - Name: '__llvm_covfun (6)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 59A48AA8899AA358C100000091E33C8FF36C04004C551E9517F40F4F01010101052001B4011A0C02030213001A2005010013001A05001C001F05002000A1808080080500210804050109000E2039090009000E0900120013203D0D00120013100101005D050109000E2011410009000E110012001320154500120013100101005D050109000E05000900172049210009000E2100120017204D250012001719001B001C20551D001B001C1001010063050109000E05000900172031590009000E310012001720355D0012001729001B001C202D65001B001C1002010063 | ||
| - Name: '__llvm_covfun (7)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: F5953D044B505D13D50000005FD132562FE71EAC4C551E9517F40F4F010107010501110111011D011D012901292201C201150D02100201000103010A000B03000A0015200935000A000B09000F0015200D39000F0015050016018580808008050105000810010100010B010A00110B000A001C203D15000A0011150015001C2041190015001C11001D018580808008110105000810010100011301110012130011001C20214500110012210016001C2025490016001C1D001E00211D0022002310010100611B010A00111B000A001C204D2D000A00112D0015001C2051310015001C29001E002129002200231001010061 | ||
| - Name: '__llvm_covfun (8)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 20E5C369BDF15C7949000000D0D60000000000004C551E9517F40F4F0101000C01D1011D0702100201000101010B001120050D000B001105001300948080800805001400150D00180019100101000101010B000C200911000B000C11001000111001010001 | ||
| - Name: '__llvm_covfun (9)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 7DE8E7C47096EB427100000092EAF0986287F0784C551E9517F40F4F0101050715010D0D15050905091001DA01170B020301130019200519001300190B001B001E05001F00A08080800805002009041302080606100101024D13030B0010200D11000B00100D00110092808080080D00120017110018018780808008110107010611010E0013200915000E0013 | ||
| - Name: '__llvm_covfun (10)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: FAD58DE7366495DB0A00000018000000000000004C551E9517F40F4F0101000101F501280F02 | ||
| - Name: '__llvm_covfun (11)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 4CB4F49D6737EBF92B000000D1460000000000004C551E9517F40F4F01010101050601E7011B030203011300192005010013001905001B001E05001F00A0808080080500200104 | ||
| - Name: __llvm_covmap | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 0000000017000000000000000600000002140000126272616E63682D632D67656E6572616C2E6300 | ||
| - Name: __llvm_prf_names | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x1 | ||
| Content: A6010073696D706C655F6C6F6F707301636F6E646974696F6E616C73016561726C795F6578697473016A756D7073017377697463686573016269675F73776974636801626F6F6C65616E5F6F70657261746F727301626F6F6C6F705F6C6F6F707301636F6E646974696F6E616C5F6F70657261746F7201646F5F66616C6C7468726F756768016D61696E016272616E63682D632D67656E6572616C2E633A7374617469635F66756E63 | ||
| - Type: SectionHeaderTable | ||
| Sections: | ||
| - Name: .strtab | ||
| - 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 (6)' | ||
| - 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_79BE9FB148987D7u | ||
| Type: STT_OBJECT | ||
| Section: __llvm_covfun | ||
| Binding: STB_WEAK | ||
| Size: 0x7C | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_688E43F1A505AD83u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (1)' | ||
| Binding: STB_WEAK | ||
| Size: 0x144 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_6973C52804C74904u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (2)' | ||
| Binding: STB_WEAK | ||
| Size: 0x154 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_5E259F0529789455u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (3)' | ||
| Binding: STB_WEAK | ||
| Size: 0x230 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_BF9282263CCA2971u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (4)' | ||
| Binding: STB_WEAK | ||
| Size: 0x1D7 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_7B4187606E1C4D3Fu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (5)' | ||
| Binding: STB_WEAK | ||
| Size: 0x19F | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_58A39A89A88AA459u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (6)' | ||
| Binding: STB_WEAK | ||
| Size: 0xDD | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_135D504B043D95F5u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (7)' | ||
| Binding: STB_WEAK | ||
| Size: 0xF1 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_795CF1BD69C3E520u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (8)' | ||
| Binding: STB_WEAK | ||
| Size: 0x65 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_42EB9670C4E7E87Du | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (9)' | ||
| Binding: STB_WEAK | ||
| Size: 0x8D | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_DB956436E78DD5FAu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (10)' | ||
| Binding: STB_WEAK | ||
| Size: 0x26 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_F9EB37679DF4B44Cu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (11)' | ||
| Binding: STB_WEAK | ||
| Size: 0x47 | ||
| Other: [ STV_HIDDEN ] | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,144 @@ | ||
| # Instrument block coverage | ||
| :single_byte_coverage | ||
| _Z4funcii | ||
| # Func Hash: | ||
| 8468630735863722633 | ||
| # Num Counters: | ||
| 127 | ||
| # Counter Values: | ||
| 4 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 2 | ||
| 0 | ||
| 2 | ||
| 2 | ||
| 3 | ||
| 2 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 1 | ||
| 3 | ||
| 3 | ||
| 3 | ||
| 3 | ||
| 3 | ||
| 3 | ||
| 1 | ||
| 2 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 3 | ||
| 3 | ||
| 3 | ||
| 3 | ||
| 4 | ||
| 1 | ||
| 0 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 2 | ||
| 0 | ||
| 2 | ||
| 0 | ||
| 0 | ||
| 4 | ||
| 1 | ||
| 3 | ||
| 1 | ||
| 1 | ||
| 2 | ||
| 0 | ||
| 2 | ||
| 2 | ||
| 4 | ||
| 0 | ||
| 4 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 3 | ||
| 1 | ||
| 4 | ||
| 0 | ||
| 4 | ||
| 0 | ||
| 4 | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 0 | ||
| 3 | ||
| 1 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 2 | ||
| 1 | ||
| 1 | ||
| 0 | ||
| 2 | ||
| 1 | ||
| 1 | ||
| 0 | ||
| 3 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 0 | ||
| 3 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 4 | ||
| 0 | ||
| 3 | ||
| 1 | ||
|
|
||
| main | ||
| # Func Hash: | ||
| 24 | ||
| # Num Counters: | ||
| 1 | ||
| # Counter Values: | ||
| 4 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| --- !ELF | ||
| FileHeader: | ||
| Class: ELFCLASS64 | ||
| Data: ELFDATA2LSB | ||
| OSABI: ELFOSABI_GNU | ||
| Type: ET_REL | ||
| Machine: EM_X86_64 | ||
| SectionHeaderStringTable: .strtab | ||
| Sections: | ||
| - Name: __llvm_covfun | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: F0A0ED2C305C0BB36F03000089B21C19C99E86758F2950E06FBD46E801010085010108194302100701000101010C000E01000C010E01000C020E01000C030E01000C040E2025ED01000C000E25010C000E2029F101000C000E1D010C000E2021F901000C000E15010C000E20198102000C000E0D010C000E20118902000C000E05010C000E20099102000C000E100101000101010C000E01000C010E01000C020E01000C030E01000C040E2095024D000C000E4D010C000E20990251000C000E45010C000E20A10249000C000E3D010C000E20A90241000C000E35010C000E20B10239000C000E2D010C000E20B90231000C000E100101000101010C011001000C031001000C051001000C071001000C091001000D000F2069BD02000D000F69010D000F206DC102000D000F65010C011065000D000F2071C502000D000F71010D000F2075C902000D000F61010C011061000D000F2079D502000D000F79010D000F207DD902000D000F5D010C01105D000D000F208101E502000D000F8101010D000F208501E902000D000F59010C011059000D000F208901F502000D000F8901010D000F208D01F902000D000F55010C011055000D000F2091018503000D000F9101010D000F2095018903000D000F100101000101010C011001000C031001000C051001000C071001000C091001000D000F209503AD01000D000FAD01010D000F209903B101000D000FA901010C0110A901000D000F209D03B501000D000FB501010D000F20A103B901000D000FA501010C0110A501000D000F20AD03BD01000D000FBD01010D000F20B103C101000D000FA101010C0110A101000D000F20BD03C501000D000FC501010D000F20C103C901000D000F9D01010C01109D01000D000F20CD03CD01000D000FCD01010D000F20D103D101000D000F9901010C01109901000D000F20DD03D501000D000FD501010D000F20E103D901000D000F1001010001010107000820DD01ED0300070008DD010009018580808008DD0101050016ED030017028580808008ED03020500161001010001010107000820E101F10300070008E1010009018580808008E10101050016F1030017028580808008F103020500161001010001010107000820E501F50300070008E5010009018580808008E50101050016F5030017028580808008F503020500161001010001010107000820E901F90300070008E9010009018580808008E90101050016F9030017028580808008F90302050016 | ||
| - Name: '__llvm_covfun (1)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: FAD58DE7366495DB0900000018000000000000008F2950E06FBD46E801010001014F010402 | ||
| - Name: __llvm_covmap | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 000000001D0000000000000006000000021A0000186272616E63682D6C6F676963616C2D6D697865642E637070000000 | ||
| - Name: __llvm_prf_names | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x1 | ||
| Content: 0E005F5A3466756E636969016D61696E | ||
| - Type: SectionHeaderTable | ||
| Sections: | ||
| - Name: .strtab | ||
| - Name: __llvm_covfun | ||
| - Name: '__llvm_covfun (1)' | ||
| - 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_B30B5C302CEDA0F0u | ||
| Type: STT_OBJECT | ||
| Section: __llvm_covfun | ||
| Binding: STB_WEAK | ||
| Size: 0x38B | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_DB956436E78DD5FAu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (1)' | ||
| Binding: STB_WEAK | ||
| Size: 0x25 | ||
| Other: [ STV_HIDDEN ] | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| # Instrument block coverage | ||
| :single_byte_coverage | ||
| _Z4funcii | ||
| # Func Hash: | ||
| 456046650042366162 | ||
| # Num Counters: | ||
| 37 | ||
| # Counter Values: | ||
| 3 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 0 | ||
| 2 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 2 | ||
| 1 | ||
| 3 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 3 | ||
| 0 | ||
| 3 | ||
| 0 | ||
|
|
||
| _Z5func2ii | ||
| # Func Hash: | ||
| 14151920320560143107 | ||
| # Num Counters: | ||
| 15 | ||
| # Counter Values: | ||
| 3 | ||
| 3 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 2 | ||
| 1 | ||
| 3 | ||
| 2 | ||
| 1 | ||
| 0 | ||
| 1 | ||
|
|
||
| main | ||
| # Func Hash: | ||
| 24 | ||
| # Num Counters: | ||
| 1 | ||
| # Counter Values: | ||
| 3 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,69 @@ | ||
| --- !ELF | ||
| FileHeader: | ||
| Class: ELFCLASS64 | ||
| Data: ELFDATA2LSB | ||
| OSABI: ELFOSABI_GNU | ||
| Type: ET_REL | ||
| Machine: EM_X86_64 | ||
| SectionHeaderStringTable: .strtab | ||
| Sections: | ||
| - Name: __llvm_covfun | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: F0A0ED2C305C0BB3AB010000D238C8100334540693E696313ECE8F5D15010101010101010101010101010101010101010101001A01101911020C010C0011140015001A100101005C1C010C0011100101006224010C001210010100682C010C0012100101006E34010C0012100101007401010A000B01000A001001000A001501000A001A204575000A000B45000F0010204979000F00103D001400152041810100140015350019001A203989010019001A2D001E001F20319101001E001F10010104550301050F001701000F001720054D000F00170205060F0017200951000F00170301070F001F3C00100015440019001E014C0910001501540A100016015C0B1000160301050F001701000F0017200D55000F0017020D060F0017201159000F00170301070F001F64001000156C0019001E017409100015017C0A1000160301050F001701000F001720155D000F00170215060F0017201961000F00170301070F001F8401001000158C010019001E019401091000150301050F001701000F0017201D65000F0017021D060F0017202169000F00170301070F001F9C0100100015A4010019001E0301050F001701000F001720256D000F00170225060F0017202971000F0017 | ||
| - Name: '__llvm_covfun (1)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: B01D983FC6736395C1000000039B9E2C8DB865C493E696313ECE8F5D0D01010101010101010101010101000401241A07020C010E0014140018001D1001010365011C0B1000160505080F0026203909000F002624001000152C0018001D3400200025013C0A1000160305070F001F44001000154C0019001E0115060F00170129050F00170154091000150305050F001705000F001720192D000F00170219060F0017201D31000F00170401070F001F01000F001F5C00100015640019001E0301050F001701000F0017200D21000F0017020D060F0017201125000F0017 | ||
| - Name: '__llvm_covfun (2)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: FAD58DE7366495DB09000000180000000000000093E696313ECE8F5D01010001012F010502 | ||
| - Name: __llvm_covmap | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 0000000016000000000000000600000002130000116272616E63682D6D6163726F732E6370700000 | ||
| - Name: __llvm_prf_names | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x1 | ||
| Content: 19005F5A3466756E636969015F5A3566756E63326969016D61696E | ||
| - Type: SectionHeaderTable | ||
| Sections: | ||
| - Name: .strtab | ||
| - 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_B30B5C302CEDA0F0u | ||
| Type: STT_OBJECT | ||
| Section: __llvm_covfun | ||
| Binding: STB_WEAK | ||
| Size: 0x1C7 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_956373C63F981DB0u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (1)' | ||
| Binding: STB_WEAK | ||
| Size: 0xDD | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_DB956436E78DD5FAu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (2)' | ||
| Binding: STB_WEAK | ||
| Size: 0x25 | ||
| Other: [ STV_HIDDEN ] | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| #include <stdio.h> | ||
| #include <stdlib.h> | ||
|
|
||
| extern void __llvm_profile_write_file(void); | ||
|
|
||
| int main(int argc, char *argv[]) | ||
| { | ||
| int i = 0; | ||
| if (argc < 3) // CHECK: Branch ([[@LINE]]:7): [True: 16.67%, False: 83.33%] | ||
| { | ||
| (void)0; | ||
| return 0; | ||
| } | ||
|
|
||
| int a = atoi(argv[1]); | ||
| int b = atoi(argv[2]); | ||
|
|
||
| // CHECK: Branch ([[@LINE+4]]:8): [True: 20.00%, False: 80.00%] | ||
| // CHECK: Branch ([[@LINE+3]]:18): [True: 0.00%, False: 100.00%] | ||
| // CHECK: Branch ([[@LINE+2]]:29): [True: 0.00%, False: 100.00%] | ||
| // CHECK: Branch ([[@LINE+1]]:40): [True: 40.00%, False: 60.00%] | ||
| if ((a == 0 && b == 2) || b == 34 || a == b) | ||
| printf("case1\n"); | ||
|
|
||
| b = (a != 0 || a == 2) ? b : b+2; // CHECK: Branch ([[@LINE]]:8): [True: 80.00%, False: 20.00%] | ||
| // CHECK: Branch ([[@LINE-1]]:18): [True: 0.00%, False: 100.00%] | ||
| b = (a != 0 && a == 1); // CHECK: Branch ([[@LINE]]:8): [True: 80.00%, False: 20.00%] | ||
| // CHECK: Branch ([[@LINE-1]]:18): [True: 25.00%, False: 75.00%] | ||
| for (i = 0; i < b; i++) { a = 2 + b + b; } | ||
| // CHECK: Branch ([[@LINE-1]]:15): [True: 16.67%, False: 83.33%] | ||
|
|
||
| b = a; | ||
|
|
||
| switch (a) | ||
| { | ||
| case 0: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] | ||
| printf("case0\n"); | ||
| case 2: // CHECK: Branch ([[@LINE]]:5): [True: 20.00%, False: 80.00%] | ||
| printf("case2\n"); | ||
| case 3: // CHECK: Branch ([[@LINE]]:5): [True: 0.00%, False: 100.00%] | ||
| printf("case3\n"); | ||
| default: break; // CHECK: Branch ([[@LINE]]:5): [True: 60.00%, False: 40.00%] | ||
| } | ||
|
|
||
| i = 0; | ||
| do { | ||
| printf("loop\n"); | ||
| } while (i++ < 10); // CHECK: Branch ([[@LINE]]:12): [True: 90.91%, False: 9.09%] | ||
|
|
||
| (void)b; | ||
|
|
||
| return 0; | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| # Instrument block coverage | ||
| :single_byte_coverage | ||
| _Z4funcIbEiT_ | ||
| # Func Hash: | ||
| 11045778961 | ||
| # Num Counters: | ||
| 3 | ||
| # Counter Values: | ||
| 1 | ||
| 1 | ||
| 0 | ||
|
|
||
| _Z4funcIfEiT_ | ||
| # Func Hash: | ||
| 11045778961 | ||
| # Num Counters: | ||
| 3 | ||
| # Counter Values: | ||
| 1 | ||
| 0 | ||
| 1 | ||
|
|
||
| _Z4funcIiEiT_ | ||
| # Func Hash: | ||
| 11045778961 | ||
| # Num Counters: | ||
| 3 | ||
| # Counter Values: | ||
| 1 | ||
| 0 | ||
| 1 | ||
|
|
||
| main | ||
| # Func Hash: | ||
| 185286008276329560 | ||
| # Num Counters: | ||
| 7 | ||
| # Counter Values: | ||
| 1 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
| 1 | ||
| 0 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| --- !ELF | ||
| FileHeader: | ||
| Class: ELFCLASS64 | ||
| Data: ELFDATA2LSB | ||
| OSABI: ELFOSABI_GNU | ||
| Type: ET_REL | ||
| Machine: EM_X86_64 | ||
| SectionHeaderStringTable: .strtab | ||
| Sections: | ||
| - Name: __llvm_covfun | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: FAD58DE7366495DB5700000058242991A444920226ED9A40DAABBC6B0101000D011D0C0902010107001320051100070013050014018580808008050105001601010700172009150007001709001801858080800809010500160101070017200D19000700170D00180185808080080D01050016 | ||
| - Name: '__llvm_covfun (1)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 5427717259E0E43E3F000000113661920200000026ED9A40DAABBC6B01010009010D0F0602010106000720050900060007050008018580808008050105000D09000E028580808008090205000D00000E0183808080080001030102 | ||
| - Name: '__llvm_covfun (2)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 4B7E22082F0551AA3F000000113661920200000026ED9A40DAABBC6B01010009010D0F0602010106000720050900060007050008018580808008050105000D09000E028580808008090205000D00000E0183808080080001030102 | ||
| - Name: '__llvm_covfun (3)' | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: AC1440BC3DA3E41A3F000000113661920200000026ED9A40DAABBC6B01010009010D0F0602010106000720050900060007050008018580808008050105000D09000E028580808008090205000D00000E0183808080080001030102 | ||
| - Name: __llvm_covmap | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 0000000019000000000000000600000002160000146272616E63682D74656D706C617465732E637070000000 | ||
| - Name: __llvm_prf_names | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x1 | ||
| Content: 2E006D61696E015F5A3466756E6349694569545F015F5A3466756E6349624569545F015F5A3466756E6349664569545F | ||
| - Type: SectionHeaderTable | ||
| Sections: | ||
| - Name: .strtab | ||
| - Name: __llvm_covfun | ||
| - Name: '__llvm_covfun (1)' | ||
| - Name: '__llvm_covfun (2)' | ||
| - 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_DB956436E78DD5FAu | ||
| Type: STT_OBJECT | ||
| Section: __llvm_covfun | ||
| Binding: STB_WEAK | ||
| Size: 0x73 | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_3EE4E05972712754u | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (1)' | ||
| Binding: STB_WEAK | ||
| Size: 0x5B | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_AA51052F08227E4Bu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (2)' | ||
| Binding: STB_WEAK | ||
| Size: 0x5B | ||
| Other: [ STV_HIDDEN ] | ||
| - Name: __covrec_1AE4A33DBC4014ACu | ||
| Type: STT_OBJECT | ||
| Section: '__llvm_covfun (3)' | ||
| Binding: STB_WEAK | ||
| Size: 0x5B | ||
| Other: [ STV_HIDDEN ] | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
| #include <stdio.h> | ||
| template<typename T> | ||
| void unused(T x) { | ||
| return; | ||
| } | ||
|
|
||
| template<typename T> | ||
| int func(T x) { | ||
| if(x) // CHECK: | Branch ([[@LINE]]:6): [True: 0, False: 1] | ||
| return 0; // CHECK: | Branch ([[@LINE-1]]:6): [True: 1, False: 0] | ||
| else // CHECK: | Branch ([[@LINE-2]]:6): [True: 0, False: 1] | ||
| return 1; | ||
| int j = 1; | ||
| } | ||
|
|
||
| // CHECK-LABEL: _Z4funcIiEiT_: | ||
| // CHECK: | | Branch ([[@LINE-8]]:6): [True: 0, False: 1] | ||
| // CHECK-LABEL: _Z4funcIbEiT_: | ||
| // CHECK: | | Branch ([[@LINE-10]]:6): [True: 1, False: 0] | ||
| // CHECK-LABEL: _Z4funcIfEiT_: | ||
| // CHECK: | | Branch ([[@LINE-12]]:6): [True: 0, False: 1] | ||
|
|
||
|
|
||
| int main() { | ||
| if (func<int>(0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] | ||
| printf("case1\n"); | ||
| if (func<bool>(true)) // CHECK: | Branch ([[@LINE]]:7): [True: 0, False: 1] | ||
| printf("case2\n"); | ||
| if (func<float>(0.0)) // CHECK: | Branch ([[@LINE]]:7): [True: 1, False: 0] | ||
| printf("case3\n"); | ||
| (void)0; | ||
| return 0; | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| # Instrument block coverage | ||
| :single_byte_coverage | ||
| main | ||
| # Func Hash: | ||
| 15239891155360101223 | ||
| # Num Counters: | ||
| 8 | ||
| # Counter Values: | ||
| 161 | ||
| 0 | ||
| 161 | ||
| 161 | ||
| 0 | ||
| 161 | ||
| 0 | ||
| 161 | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| --- !ELF | ||
| FileHeader: | ||
| Class: ELFCLASS64 | ||
| Data: ELFDATA2LSB | ||
| OSABI: ELFOSABI_GNU | ||
| Type: ET_REL | ||
| Machine: EM_X86_64 | ||
| SectionHeaderStringTable: .strtab | ||
| Sections: | ||
| - Name: __llvm_covfun | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: FAD58DE7366495DBA40000006733DBEA42F87ED3C60E0B951FF3509D01010101091A01060C13021002010001010107000820051500070008050009008A8080800805000A0204150204008A8080800815000A02041003010001030113001A2009010013001A09001C001F09002000A18080800809002102041003010001010107000D200D190007000D0D000F0090808080080D00100015190018001D010107000D20111D0007000D11000F018980808008110109000E1D0109000E1001010001 | ||
| - Name: __llvm_covmap | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x8 | ||
| Content: 00000000200000000000000006000000021D00001B73686F774C696E65457865637574696F6E436F756E74732E637070 | ||
| - Name: __llvm_prf_names | ||
| Type: SHT_PROGBITS | ||
| Flags: [ SHF_ALLOC, SHF_GNU_RETAIN ] | ||
| AddressAlign: 0x1 | ||
| Content: 04006D61696E | ||
| - Type: SectionHeaderTable | ||
| Sections: | ||
| - Name: .strtab | ||
| - Name: __llvm_covfun | ||
| - 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_DB956436E78DD5FAu | ||
| Type: STT_OBJECT | ||
| Section: __llvm_covfun | ||
| Binding: STB_WEAK | ||
| Size: 0xC0 | ||
| Other: [ STV_HIDDEN ] | ||
| ... |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,29 @@ | ||
| // HTML-WHOLE-FILE: <td class='line-number'><a name='L[[@LINE+2]]' href='#L[[@LINE+2]]'><pre>[[@LINE+2]]</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// before | ||
| // HTML-FILTER-NOT: <td class='line-number'><a name='L[[@LINE+1]]' href='#L[[@LINE+1]]'><pre>[[@LINE+1]]</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// before | ||
| // before any coverage // WHOLE-FILE: [[@LINE]]| |// before | ||
| // FILTER-NOT: [[@LINE-1]]| |// before | ||
| // HTML: <td class='line-number'><a name='L[[@LINE+1]]' href='#L[[@LINE+1]]'><pre>[[@LINE+1]]</pre></a></td><td class='covered-line'><pre>161</pre></td><td class='code'><pre>int main() { | ||
| int main() { // TEXT: [[@LINE]]| [[C161:161|1]]|int main( | ||
| int x = 0; // TEXT: [[@LINE]]| [[C161]]| int x | ||
|
|
||
| if (x) { // TEXT: [[@LINE]]| [[C161]]| if (x) | ||
| x = 0; // TEXT: [[@LINE]]| 0| x = 0 | ||
| } else { // TEXT: [[@LINE]]| [[C161]]| } else | ||
| x = 1; // TEXT: [[@LINE]]| [[C161]]| x = 1 | ||
| } // TEXT: [[@LINE]]| [[C161]]| } | ||
|
|
||
| for (int i = 0; i < 100; ++i) { // TEXT: [[@LINE]]| [[C16K2:16\.2k|1]]| for ( | ||
| x = 1; // TEXT: [[@LINE]]| [[C16K1:16\.1k|1]]| x = 1 | ||
| } // TEXT: [[@LINE]]| [[C16K1]]| } | ||
|
|
||
| x = x < 10 ? x + 1 : x - 1; // TEXT: [[@LINE]]| [[C161]]| x = | ||
| x = x > 10 ? // TEXT: [[@LINE]]| [[C161]]| x = | ||
| x - 1: // TEXT: [[@LINE]]| 0| x | ||
| x + 1; // TEXT: [[@LINE]]| [[C161]]| x | ||
|
|
||
| return 0; // TEXT: [[@LINE]]| [[C161]]| return | ||
| } // TEXT: [[@LINE]]| [[C161]]|} | ||
| // after coverage // WHOLE-FILE: [[@LINE]]| |// after | ||
| // FILTER-NOT: [[@LINE-1]]| |// after | ||
| // HTML-WHOLE-FILE: <td class='line-number'><a name='L[[@LINE-2]]' href='#L[[@LINE-2]]'><pre>[[@LINE-2]]</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// after | ||
| // HTML-FILTER-NOT: <td class='line-number'><a name='L[[@LINE-3]]' href='#L[[@LINE-3]]'><pre>[[@LINE-3]]</pre></a></td><td class='skipped-line'></td><td class='code'><pre>// after |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| # This is for developers' convenience and not expected to be in build steps. | ||
| # | ||
| # Usage: | ||
| # cd /path/to/llvm-project/llvm/test/tools/llvm-cov/Inputs | ||
| # PATH=/path/to/build/bin:$PATH make -f yaml.makefile | ||
|
|
||
| CFLAGS_COVMAP = -fcoverage-compilation-dir=. \ | ||
| -mllvm -runtime-counter-relocation=true \ | ||
| -mllvm -conditional-counter-update=true \ | ||
| -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) | ||
|
|
||
| %-single.o: %.cpp | ||
| clang++ $< -c -o $@ \ | ||
| -mllvm -enable-single-byte-coverage=true \ | ||
| $(CFLAGS_COVMAP) | ||
|
|
||
| %-single.o: %.c | ||
| clang $< -c -o $@ \ | ||
| -mllvm -enable-single-byte-coverage=true \ | ||
| $(CFLAGS_COVMAP) | ||
|
|
||
| %.covmap.o: %.o | ||
| llvm-objcopy \ | ||
| --only-section=__llvm_covfun \ | ||
| --only-section=__llvm_covmap \ | ||
| --only-section=__llvm_prf_names \ | ||
| --strip-unneeded \ | ||
| $< $@ | ||
|
|
||
| %.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_showLineExecutionCounts := $(patsubst %,%;,$(shell seq 161)) | ||
|
|
||
| ARGS_mcdc-const-folding := \ | ||
| 0 1; \ | ||
| 1 0; \ | ||
| 1 1; \ | ||
| 1 1 | ||
|
|
||
| %.profdata: %.exe | ||
| -find -name '$*.*.profraw' | xargs rm -fv | ||
| @if [ "$(ARGS_$(patsubst %-single,%,$*))" = "" ]; then \ | ||
| echo "Executing: $<"; \ | ||
| LLVM_PROFILE_FILE=$*.%p%c.profraw ./$<; \ | ||
| else \ | ||
| LLVM_PROFILE_FILE=$*.%p%c.profraw; \ | ||
| export LLVM_PROFILE_FILE; \ | ||
| for xcmd in $(shell echo "$(ARGS_$(patsubst %-single,%,$*))" | 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 $@ $< | ||
|
|
||
| .PHONY: all | ||
| all: \ | ||
| $(patsubst %.yaml,%.proftext, $(wildcard *.yaml)) \ | ||
| $(wildcard *.yaml) | ||
| -find -name '*.profraw' | xargs rm -f |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| // RUN: llvm-profdata merge %S/Inputs/branch-logical-mixed.proftext -o %t.profdata | ||
| // RUN: llvm-cov show --show-branches=count %S/Inputs/branch-logical-mixed.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-logical-mixed.cpp | ||
| // RUN: llvm-cov report --show-branch-summary %S/Inputs/branch-logical-mixed.o32l -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-logical-mixed.cpp | ||
| | FileCheck %s -check-prefix=REPORT | ||
|
|
||
| // RUN: yaml2obj %S/Inputs/branch-logical-mixed-single.yaml -o %t.o | ||
| // RUN: llvm-profdata merge %S/Inputs/branch-logical-mixed-single.proftext -o %t.profdata | ||
| // 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 | ||
| // REPORT-NEXT: --- | ||
| // REPORT-NEXT: _Z4funcii 77 15 80.52% 60 2 96.67% 80 30 62.50% | ||
| // REPORT-NEXT: main 1 0 100.00% 5 0 100.00% 0 0 0.00% | ||
| // REPORT-NEXT: --- | ||
| // REPORT-NEXT: TOTAL 78 15 80.77% 65 2 96.92% 80 30 62.50% |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| // RUN: llvm-profdata merge %S/Inputs/branch-macros.proftext -o %t.profdata | ||
| // RUN: llvm-cov show --show-expansions --show-branches=count %S/Inputs/branch-macros.o32l -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck %S/Inputs/branch-macros.cpp | ||
| // RUN: llvm-cov report --show-branch-summary %S/Inputs/branch-macros.o32l -instr-profile %t.profdata -show-functions -path-equivalence=/tmp,%S/Inputs %S/Inputs/branch-macros.cpp | FileCheck %s -check-prefix=REPORT | ||
|
|
||
| // RUN: yaml2obj %S/Inputs/branch-macros-single.yaml -o %t.o | ||
| // RUN: llvm-profdata merge %S/Inputs/branch-macros-single.proftext -o %t.profdata | ||
| // 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 | ||
|
|
||
| // 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: 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% |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| // Basic handling of line counts. | ||
| // RUN: rm -rf %t*.dir | ||
| // RUN: llvm-profdata merge %S/Inputs/lineExecutionCounts.proftext -o %t.profdata | ||
|
|
||
| // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | FileCheck -check-prefixes=TEXT,WHOLE-FILE %S/Inputs/showLineExecutionCounts.cpp | ||
| // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main | FileCheck -check-prefixes=TEXT,FILTER %S/Inputs/showLineExecutionCounts.cpp | ||
|
|
||
| // Test -output-dir. | ||
| // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -o %t.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | ||
| // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -output-dir %t.filtered.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main | ||
| // RUN: FileCheck -check-prefixes=TEXT,WHOLE-FILE -input-file %t.dir/coverage/tmp/showLineExecutionCounts.cpp.txt %S/Inputs/showLineExecutionCounts.cpp | ||
| // RUN: FileCheck -check-prefixes=TEXT,FILTER -input-file %t.filtered.dir/coverage/tmp/showLineExecutionCounts.cpp.txt %S/Inputs/showLineExecutionCounts.cpp | ||
| // | ||
| // RUN: llvm-cov export %S/Inputs/lineExecutionCounts.covmapping -instr-profile %t.profdata 2>/dev/null -summary-only > %t.export-summary.json | ||
| // RUN: not grep '"name":"main"' %t.export-summary.json | ||
| // | ||
| // Test html output. | ||
| // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -format html -o %t.html.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs | ||
| // RUN: llvm-cov show %S/Inputs/lineExecutionCounts.covmapping -format html -o %t.html.filtered.dir -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main | ||
| // RUN: FileCheck -check-prefixes=HTML,HTML-WHOLE-FILE -input-file %t.html.dir/coverage/tmp/showLineExecutionCounts.cpp.html %S/Inputs/showLineExecutionCounts.cpp | ||
| // RUN: FileCheck -check-prefixes=HTML,HTML-FILTER -input-file %t.html.filtered.dir/coverage/tmp/showLineExecutionCounts.cpp.html %S/Inputs/showLineExecutionCounts.cpp | ||
| // | ||
| // Test index creation. | ||
| // RUN: FileCheck -check-prefix=TEXT-INDEX -input-file %t.dir/index.txt %s | ||
| // TEXT-INDEX: Filename | ||
| // TEXT-INDEX-NEXT: --- | ||
| // TEXT-INDEX-NEXT: {{.*}}showLineExecutionCounts.cpp | ||
| // | ||
| // RUN: FileCheck -check-prefix HTML-INDEX -input-file %t.html.dir/index.html %s | ||
| // HTML-INDEX-LABEL: <table> | ||
| // HTML-INDEX: <td class='column-entry-bold'>Filename</td> | ||
| // HTML-INDEX: <td class='column-entry-bold'>Function Coverage</td> | ||
| // HTML-INDEX: <td class='column-entry-bold'>Line Coverage</td> | ||
| // HTML-INDEX: <td class='column-entry-bold'>Region Coverage</td> | ||
| // HTML-INDEX: <a href='coverage{{.*}}showLineExecutionCounts.cpp.html'{{.*}}showLineExecutionCounts.cpp</a> | ||
| // HTML-INDEX: <td class='column-entry-green'> | ||
| // HTML-INDEX: 100.00% (1/1) | ||
| // HTML-INDEX: <td class='column-entry-yellow'> | ||
| // HTML-INDEX: 90.00% (18/20) | ||
| // HTML-INDEX: <td class='column-entry-red'> | ||
| // HTML-INDEX: 72.73% (8/11) | ||
| // HTML-INDEX: <tr class='light-row-bold'> | ||
| // HTML-INDEX: Totals | ||
|
|
||
| // Single byte | ||
| // RUN: yaml2obj %S/Inputs/showLineExecutionCounts-single.yaml -o %t.o | ||
| // RUN: llvm-profdata merge %S/Inputs/showLineExecutionCounts-single.proftext -o %t.profdata | ||
|
|
||
| // RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs | FileCheck -check-prefixes=TEXT,WHOLE-FILE %S/Inputs/showLineExecutionCounts.cpp | ||
| // RUN: llvm-cov show %t.o -instr-profile %t.profdata -path-equivalence=.,%S/Inputs -name=main | FileCheck -check-prefixes=TEXT,FILTER %S/Inputs/showLineExecutionCounts.cpp |