if exists
authorSinan Kaya <sinan.kaya@microsoft.com>
Sat, 16 Feb 2019 20:16:11 +0000 (20:16 +0000)
committerSinan Kaya <sinan.kaya@microsoft.com>
Fri, 29 Mar 2019 14:09:04 +0000 (14:09 +0000)
llvm

src/inc/check.h
src/inc/iterator.h

index b401a25..a05960f 100644 (file)
@@ -286,6 +286,7 @@ do                                                                  \
 template <typename TYPENAME>
 CHECK CheckInvariant(TYPENAME &obj)
 {
+#if defined(_MSC_VER) || defined(__llvm__)
     __if_exists(TYPENAME::Invariant)
     {
         CHECK(obj.Invariant());
@@ -294,6 +295,7 @@ CHECK CheckInvariant(TYPENAME &obj)
     {
         CHECK(obj.InternalInvariant());
     }
+#endif
 
     CHECK_OK;
 }
@@ -339,10 +341,12 @@ CHECK CheckPointer(TYPENAME *o, IsNullOK ok = NULL_NOT_OK)
     }
     else
     {
+#if defined(_MSC_VER) || defined(__llvm__)
         __if_exists(TYPENAME::Check)
         {
             CHECK(o->Check());
         }
+#endif
     }
 
     CHECK_OK;
@@ -351,10 +355,12 @@ CHECK CheckPointer(TYPENAME *o, IsNullOK ok = NULL_NOT_OK)
 template <typename TYPENAME>
 CHECK CheckValue(TYPENAME &val)
 {
+#if defined(_MSC_VER) || defined(__llvm__)
     __if_exists(TYPENAME::Check)
     {
         CHECK(val.Check());
     }
+#endif
 
     CHECK(CheckInvariant(val));
 
index 98cf618..7616c2c 100644 (file)
@@ -219,7 +219,7 @@ class CheckedIteratorBase
     {
         LIMITED_METHOD_CONTRACT;
         SUPPORTS_DAC;
-#if defined(_DEBUG)
+#if defined(_DEBUG) && (defined(_MSC_VER) || defined(__llvm__))
         __if_exists(CONTAINER::m_revision)
         {
             CHECK_MSG(m_revision == m_container->m_revision, 
@@ -242,25 +242,27 @@ class CheckedIteratorBase
         LIMITED_METHOD_CONTRACT;
 #if defined(_DEBUG)
         m_container = container;
+#if defined(_MSC_VER) || defined(__llvm__)
         __if_exists(CONTAINER::m_revision)
         {
             m_revision = m_container->m_revision;
         }
 #endif
+#endif
     }
 
     void Resync(const CONTAINER *container)
     {
         LIMITED_METHOD_DAC_CONTRACT;
 
-#if defined(_DEBUG)
+#if defined(_DEBUG) && (defined(_MSC_VER) || defined(__llvm__))
         __if_exists(CONTAINER::m_revision)
         {
             m_revision = m_container->m_revision;
         }
 #endif
     }
-    
+
 #if defined(_DEBUG)
     const CONTAINER *GetContainerDebug() const
     {