|  | # Make sure we don't try to combine counters with the same function | 
|  | # name and a matching hash if the number of counters differs | 
|  |  | 
|  | # RUN: llvm-profdata merge %s -o %t.profdata 2>&1 | FileCheck -check-prefix=MERGE_ERRS %s | 
|  | # RUN: llvm-profdata show %t.profdata -all-functions -counts > %t.out | 
|  | # RUN: FileCheck %s -input-file %t.out | 
|  | foo | 
|  | 1024 | 
|  | 4 | 
|  | 1 | 
|  | 2 | 
|  | 4 | 
|  | 8 | 
|  |  | 
|  | # The hash matches, but we can't combine these because the number of | 
|  | # counters differs. | 
|  | # MERGE_ERRS: count-mismatch.proftext: foo: function basic block count change detected (counter mismatch) | 
|  | # MERGE_ERRS: Make sure that all profile data to be merged is generated from the same binary. | 
|  | foo | 
|  | 1024 | 
|  | 3 | 
|  | 2 | 
|  | 4 | 
|  | 8 | 
|  |  | 
|  | # This one does match, so it should combine with the first just fine. | 
|  | # CHECK: Hash: 0x{{0+}}400 | 
|  | # CHECK-NEXT: Counters: 4 | 
|  | # CHECK-NEXT: Function count: 5 | 
|  | # CHECK-NEXT: Block counts: [10, 20, 40] | 
|  | foo | 
|  | 1024 | 
|  | 4 | 
|  | 4 | 
|  | 8 | 
|  | 16 | 
|  | 32 | 
|  |  | 
|  | # CHECK: Total functions: 1 | 
|  | # CHECK: Maximum function count: 5 | 
|  | # CHECK: Maximum internal block count: 40 |