[msan] Remove a failing test from MemorySanitizer.ICmpRelational
authorAlexander Potapenko <glider@google.com>
Fri, 12 May 2017 09:39:32 +0000 (09:39 +0000)
committerAlexander Potapenko <glider@google.com>
Fri, 12 May 2017 09:39:32 +0000 (09:39 +0000)
This is a follow-up to r302787, which broke MemorySanitizer.ICmpRelational.

MSan is now reporting a false positive on the following test case:
  TestForNotPoisoned((poisoned(-1, 0x80000000U) >= poisoned(-1, 0U)))
, which is sort of anticipated, because we're approximating the comparison
with an OR of the arguments' shadow values.

llvm-svn: 302887

compiler-rt/lib/msan/tests/msan_test.cc

index 40f5627..58f695e 100644 (file)
@@ -3724,8 +3724,10 @@ TEST(MemorySanitizer, ICmpRelational) {
 
   EXPECT_POISONED(poisoned(6, 0xF) > poisoned(7, 0));
   EXPECT_POISONED(poisoned(0xF, 0xF) > poisoned(7, 0));
-
-  EXPECT_NOT_POISONED(poisoned(-1, 0x80000000U) >= poisoned(-1, 0U));
+  // Note that "icmp op X, Y" is approximated with "or shadow(X), shadow(Y)"
+  // and therefore may generate false positives in some cases, e.g. the
+  // following one:
+  // EXPECT_NOT_POISONED(poisoned(-1, 0x80000000U) >= poisoned(-1, 0U));
 }
 
 #if MSAN_HAS_M128