+namespace
+{
+
+// helper function used just to avoid warnings about value computed not being
+// used in WX_ASSERT_FAILS_WITH_ASSERT() in StaticCast() below
+bool IsNull(void *p)
+{
+ return p == NULL;
+}
+
+} // anonymous namespace
+
+void MiscTestCase::StaticCast()
+{
+#if wxUSE_TARSTREAM
+ wxTarEntry tarEntry;
+ CPPUNIT_ASSERT( wxStaticCast(&tarEntry, wxArchiveEntry) );
+
+ wxArchiveEntry *entry = &tarEntry;
+ CPPUNIT_ASSERT( wxStaticCast(entry, wxTarEntry) );
+
+#if wxUSE_ZIPSTREAM
+ wxZipEntry zipEntry;
+ entry = &zipEntry;
+ CPPUNIT_ASSERT( wxStaticCast(entry, wxZipEntry) );
+ WX_ASSERT_FAILS_WITH_ASSERT( IsNull(wxStaticCast(&zipEntry, wxTarEntry)) );
+#endif // wxUSE_ZIPSTREAM
+
+ WX_ASSERT_FAILS_WITH_ASSERT( IsNull(wxStaticCast(entry, wxTarEntry)) );
+#endif // wxUSE_TARSTREAM
+}
+