From 2bb0130dcbbd08ed8e199a71d5415819389c166c Mon Sep 17 00:00:00 2001 From: Benjamin Smedberg Date: Sun, 4 Oct 2009 14:35:33 -0400 Subject: [PATCH] Fix the static analysis error: m.isVirtual is a tri-state undefined, true, or "pure", and I didn't take that into account when writing the original NS_OVERRIDE analysis. --- config/static-checking.js | 2 +- xpcom/tests/static-checker/override-pass.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/config/static-checking.js b/config/static-checking.js index 13ba4555fa1..7a64eeadb1b 100644 --- a/config/static-checking.js +++ b/config/static-checking.js @@ -63,7 +63,7 @@ function signaturesMatch(m1, m2) if (m1.shortName != m2.shortName) return false; - if (m1.isVirtual != m2.isVirtual) + if ((!!m1.isVirtual) != (!!m2.isVirtual)) return false; if (m1.isStatic != m2.isStatic) diff --git a/xpcom/tests/static-checker/override-pass.cpp b/xpcom/tests/static-checker/override-pass.cpp index d5ac1e16989..a31ed1d46bf 100644 --- a/xpcom/tests/static-checker/override-pass.cpp +++ b/xpcom/tests/static-checker/override-pass.cpp @@ -2,6 +2,7 @@ class A { int a(int, char*); void c(char); + virtual void d(int) = 0; }; class B : A @@ -13,3 +14,8 @@ class C : B { __attribute__((user("NS_override"))) void c(char); }; + +class D : A +{ + __attribute__((user("NS_override"))) void d(int); +};