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())
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())
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits