That is, make CHECK-DAG skip matches that overlap the matches of any
preceding consecutive CHECK-DAG directives. This change makes
CHECK-DAG more consistent with other directives, and there is evidence
it makes CHECK-DAG more intuitive and less error-prone. See the RFC
discussion starting at:
http://lists.llvm.org/pipermail/llvm-dev/2018-May/123010.html
Moreover, this behavior enables CHECK-DAG groups for unordered,
non-unique strings or patterns. For example, it is useful for
verifying output or logs from a parallel program, such as the OpenMP
runtime.
This patch also implements the command-line option
-allow-deprecated-dag-overlap, which reverts CHECK-DAG to the old
overlapping behavior. This option should not be used in new tests.
It is meant only for the existing tests that are broken by this change
and that need time to update.
See the following bugzilla issue for tracking of such tests:
https://bugs.llvm.org/show_bug.cgi?id=37532
This patch should not be committed until we have patches ready to add
-allow-deprecated-dag-overlap to those tests.
The latest revision of the conceptual model says we won't allow SAME or NEXT after DAG. For purposes of determining valid/invalid directive sequences, the NOT wouldn't count. I think you still get the intended result without the SAME suffix.
I see you're wanting to (in effect) have intra-line DAG, but DAG doesn't provide that guarantee.