[PATCH] D119182: [Bitstream] Temporarily disable UBSan for invalid bitcode tests. This fixes failing sanitizer buildbots.

Andrew via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 7 12:45:12 PST 2022


browneee created this revision.
browneee requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Tests added by

  https://github.com/llvm/llvm-project/commit/3c86642edd28f1ce970882edaba8dce468ec7401
  https://github.com/llvm/llvm-project/commit/f4fca0fbb052e55935b483c8955c440b59511ce8

cause existing code to exhibit UB:

  https://github.com/llvm/llvm-project/blob/b4c6d1bb379192cb5b712fda9f60cd105f21194f/llvm/include/llvm/Bitstream/BitstreamReader.h#L244

llvm/include/llvm/Bitstream/BitstreamReader.h:244:51:
runtime error: shift exponent 35 is too large for 32-bit type 'unsigned int'

Hitting the UBSan error before the expected error causes the test to fail under UBSan:


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D119182

Files:
  llvm/test/Bitcode/invalid-no-ubsan.test
  llvm/test/Bitcode/invalid.test


Index: llvm/test/Bitcode/invalid.test
===================================================================
--- llvm/test/Bitcode/invalid.test
+++ llvm/test/Bitcode/invalid.test
@@ -252,11 +252,6 @@
 
 INVALID-ABBREV-NUMBER: Invalid abbrev number
 
-RUN: not llvm-dis -disable-output %p/Inputs/size-not-plausible.bc 2>&1 | \
-RUN:   FileCheck --check-prefix=SIZE-NOT-PLAUSIBLE %s
-
-SIZE-NOT-PLAUSIBLE: Size is not plausible
-
 RUN: not llvm-dis -disable-output %p/Inputs/invalid-attribute-group-entry.bc 2>&1 | \
 RUN:   FileCheck --check-prefix=INVALID-ATTRIBUTE-GROUP-ENTRY %s
 
@@ -271,8 +266,3 @@
 RUN:   FileCheck --check-prefix=INVALID-VALUE-SYMBOL-TABLE %s
 
 INVALID-VALUE-SYMBOL-TABLE: Invalid value reference in symbol table
-
-RUN: not llvm-dis -disable-output %p/Inputs/invalid-value-symbol-table-2.bc 2>&1 | \
-RUN:   FileCheck --check-prefix=INVALID-VALUE-SYMBOL-TABLE-2 %s
-
-INVALID-VALUE-SYMBOL-TABLE-2: Expected value symbol table subblock
Index: llvm/test/Bitcode/invalid-no-ubsan.test
===================================================================
--- /dev/null
+++ llvm/test/Bitcode/invalid-no-ubsan.test
@@ -0,0 +1,19 @@
+# These tests cover invalid inputs.
+# When running under UBSan these tests hit UBSan issues before the validity
+# checks that the test is intending to exercise.
+# Under UBSan these tests fail because UBSan error is not the expected error.
+#
+# TODO: This code should be fixed to not exhibit UB, and these tests should be
+# incorporated back into invalid.test and run under UBSan again.
+
+UNSUPPORTED: ubsan
+
+RUN: not llvm-dis -disable-output %p/Inputs/size-not-plausible.bc 2>&1 | \
+RUN:   FileCheck --check-prefix=SIZE-NOT-PLAUSIBLE %s
+
+SIZE-NOT-PLAUSIBLE: Size is not plausible
+
+RUN: not llvm-dis -disable-output %p/Inputs/invalid-value-symbol-table-2.bc 2>&1 | \
+RUN:   FileCheck --check-prefix=INVALID-VALUE-SYMBOL-TABLE-2 %s
+
+INVALID-VALUE-SYMBOL-TABLE-2: Expected value symbol table subbloc


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D119182.406578.patch
Type: text/x-patch
Size: 1961 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220207/d9f6cd77/attachment.bin>


More information about the llvm-commits mailing list