forked from OSchip/llvm-project
![]() 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 |
||
---|---|---|
.. | ||
basic-cplusplus.cpp | ||
basic-cplusplus.cpp.expected | ||
check-attributes.cpp | ||
check-attributes.cpp.funcattrs.expected | ||
check-attributes.cpp.plain.expected | ||
def-and-decl.c | ||
def-and-decl.c.expected | ||
generated-funcs.c | ||
generated-funcs.c.generated.expected | ||
generated-funcs.c.no-generated.expected | ||
mangled_names.c | ||
mangled_names.c.expected | ||
mangled_names.c.funcsig.expected | ||
on_the_fly_arg_change.c | ||
on_the_fly_arg_change.c.expected | ||
prefix-never-matches.cpp |