Two RUN lines produce outputs that, each, have some common parts and some different parts. The common parts are checked under label A. The differing parts are associated to a function and checked under labels B and C, respectivelly. When build_function_body_dictionary is called for the first RUN line, it will attribute the function body to labels A and C. When the second RUN is passed to build_function_body_dictionary, it sees that the function body under A is different from what it has. If in this second RUN line, A were at the end of the prefixes list, A's body is still kept associated with the first run's function. When we output the function body (i.e. add_checks), we stop after emitting for the first prefix matching that function. So we end up with the wrong function body (first RUN's A-association). There is no reason to special-case the last label in the prefixes list, and the fix is to always clear a label association if we find a RUN line where the body is different. Differential Revision: https://reviews.llvm.org/D93078
6 lines
234 B
Plaintext
6 lines
234 B
Plaintext
# RUN: cp -f %S/Inputs/prefix-never-matches.ll %t.ll
|
|
# RUN: %update_test_checks %t.ll 2>&1 | FileCheck %s
|
|
# RUN: FileCheck --input-file=%t.ll %s --check-prefix=OUTPUT
|
|
|
|
# CHECK: WARNING: Prefix A had conflicting output
|
|
# OUTPUT-NOT: A: |