OSDN Git Service

check or check-next the first line of the function too
authorSanjay Patel <spatel@rotateright.com>
Tue, 5 Apr 2016 16:49:07 +0000 (16:49 +0000)
committerSanjay Patel <spatel@rotateright.com>
Tue, 5 Apr 2016 16:49:07 +0000 (16:49 +0000)
We could make this an option if people don't like it.
But since part of the reason for using a script to generate
checks is to prevent lazy checking that lets bugs crawl
through, let's have the script check the first line too.

For asm tests, it ensures that nothing unexpected has
happened before the first line of asm. This matches the
existing behavior of update_llc_test_checks.py.

More discussion in PR22897:
https://llvm.org/bugs/show_bug.cgi?id=22897

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265414 91177308-0d34-0410-b5e6-96231b3b80d8

utils/update_test_checks.py

index 19b2785..9458273 100755 (executable)
@@ -186,15 +186,25 @@ def add_checks(output_lines, prefix_list, func_dict, func_name, tool_basename):
       if tool_basename == "opt":
         func_body = genericize_check_lines(func_body)
 
+      # This could be selectively enabled with an optional invocation argument.
+      # Disabled for now: better to check everything. Be safe rather than sorry.
+
       # Handle the first line of the function body as a special case because
       # it's often just noise (a useless asm comment or entry label).
-      if func_body[0].startswith("#") or func_body[0].startswith("entry:"):
-        is_blank_line = True
-      else:
-        output_lines.append('; %s:       %s' % (checkprefix, func_body[0]))
+      #if func_body[0].startswith("#") or func_body[0].startswith("entry:"):
+      #  is_blank_line = True
+      #else:
+      #  output_lines.append('; %s:       %s' % (checkprefix, func_body[0]))
+      #  is_blank_line = False
+
+      # For llc tests, there may be asm directives between the label and the
+      # first checked line (most likely that first checked line is "# BB#0").
+      if tool_basename == "opt":
         is_blank_line = False
+      else:
+        is_blank_line = True;
 
-      for func_line in func_body[1:]:
+      for func_line in func_body:
         if func_line.strip() == '':
           is_blank_line = True
           continue