[PATCH] D31126: Do not run tests for crash recovery if libstdc++ safe mode is enabled

Serge Pavlov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 14 23:06:37 PDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL300392: Do not run tests for crash recovery if libstdc++ safe mode is enabled (authored by sepavloff).

Changed prior to commit:
  https://reviews.llvm.org/D31126?vs=92276&id=95372#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D31126

Files:
  cfe/trunk/test/Index/crash-recovery-code-complete.c
  cfe/trunk/test/Index/crash-recovery-modules.m
  cfe/trunk/test/Index/crash-recovery-reparse.c
  cfe/trunk/test/Index/crash-recovery.c
  cfe/trunk/test/lit.cfg


Index: cfe/trunk/test/Index/crash-recovery-reparse.c
===================================================================
--- cfe/trunk/test/Index/crash-recovery-reparse.c
+++ cfe/trunk/test/Index/crash-recovery-reparse.c
@@ -7,5 +7,6 @@
 // CHECK-REPARSE-SOURCE-CRASH: Unable to reparse translation unit
 //
 // REQUIRES: crash-recovery
+// UNSUPPORTED: libstdcxx-safe-mode
 
 #warning parsing original file
Index: cfe/trunk/test/Index/crash-recovery.c
===================================================================
--- cfe/trunk/test/Index/crash-recovery.c
+++ cfe/trunk/test/Index/crash-recovery.c
@@ -4,5 +4,6 @@
 // RUN: env LIBCLANG_DISABLE_CRASH_RECOVERY=1 not --crash c-index-test -test-load-source all %s
 //
 // REQUIRES: crash-recovery
+// UNSUPPORTED: libstdcxx-safe-mode
 
 #pragma clang __debug crash
Index: cfe/trunk/test/Index/crash-recovery-code-complete.c
===================================================================
--- cfe/trunk/test/Index/crash-recovery-code-complete.c
+++ cfe/trunk/test/Index/crash-recovery-code-complete.c
@@ -10,5 +10,6 @@
 
 // FIXME: Please investigate abnormal path in MemoryBuffer.
 // REQUIRES: can-remove-opened-file
+// UNSUPPORTED: libstdcxx-safe-mode
 
 #warning parsing original file
Index: cfe/trunk/test/Index/crash-recovery-modules.m
===================================================================
--- cfe/trunk/test/Index/crash-recovery-modules.m
+++ cfe/trunk/test/Index/crash-recovery-modules.m
@@ -4,14 +4,15 @@
 // Parse the file, such that building the module will cause Clang to crash.
 // RUN: not env CINDEXTEST_FAILONERROR=1 c-index-test -test-load-source all -fmodules -fmodules-cache-path=%t -Xclang -fdisable-module-hash -I %S/Inputs/Headers -DCRASH %s > /dev/null 2> %t.err
 // RUN: FileCheck < %t.err -check-prefix=CHECK-CRASH %s
-// CHECK-CRASH: crash-recovery-modules.m:16:9:{16:2-16:14}: fatal error: could not build module 'Crash'
+// CHECK-CRASH: crash-recovery-modules.m:17:9:{17:2-17:14}: fatal error: could not build module 'Crash'
 
 // Parse the file again, without crashing, to make sure that
 // subsequent parses do the right thing.
 // RUN: env CINDEXTEST_FAILONERROR=1 c-index-test -test-load-source all -fmodules -fmodules-cache-path=%t -Xclang -fdisable-module-hash -I %S/Inputs/Headers %s > /dev/null
 
 // REQUIRES: crash-recovery
 // REQUIRES: shell
+// UNSUPPORTED: libstdcxx-safe-mode
 
 @import Crash;
 
Index: cfe/trunk/test/lit.cfg
===================================================================
--- cfe/trunk/test/lit.cfg
+++ cfe/trunk/test/lit.cfg
@@ -440,15 +440,17 @@
 if platform.system() not in ['Windows']:
     config.available_features.add('can-remove-opened-file')
 
-# Returns set of available features, registered-target(s) and asserts.
+# Returns set of available features, registered-target(s), asserts and
+# compile definitions.
 def get_llvm_config_props():
     set_of_features = set()
 
     cmd = subprocess.Popen(
         [
             os.path.join(llvm_tools_dir, 'llvm-config'),
             '--assertion-mode',
             '--targets-built',
+            '--cxxflags'
             ],
         stdout=subprocess.PIPE,
         env=config.environment
@@ -463,6 +465,11 @@
     for arch in cmd.stdout.readline().decode('ascii').split():
         set_of_features.add(arch.lower() + '-registered-target')
 
+    # 3rd line contains compile definitions, search it to define if
+    # libstdc++ safe mode is set.
+    if re.search(r'-D_GLIBCXX_DEBUG\b', cmd.stdout.readline().decode('ascii')):
+        set_of_features.add('libstdcxx-safe-mode')
+
     return set_of_features
 
 config.available_features.update(get_llvm_config_props())


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31126.95372.patch
Type: text/x-patch
Size: 3671 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170415/f5721f81/attachment.bin>


More information about the cfe-commits mailing list