Skip to content

Revert "[clang] Add -fcrash-diagnostics-tar for tarball of crash reproducer files"#201622

Merged
aeubanks merged 1 commit into
mainfrom
revert-198838-crash
Jun 4, 2026
Merged

Revert "[clang] Add -fcrash-diagnostics-tar for tarball of crash reproducer files"#201622
aeubanks merged 1 commit into
mainfrom
revert-198838-crash

Conversation

@aeubanks
Copy link
Copy Markdown
Contributor

@aeubanks aeubanks commented Jun 4, 2026

@aeubanks aeubanks enabled auto-merge (squash) June 4, 2026 16:19
@llvmorg-github-actions llvmorg-github-actions Bot added clang Clang issues not falling into any other category clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:modules C++20 modules and Clang Header Modules labels Jun 4, 2026
@llvmorg-github-actions
Copy link
Copy Markdown

llvmorg-github-actions Bot commented Jun 4, 2026

@llvm/pr-subscribers-clang-driver

@llvm/pr-subscribers-clang

Author: Arthur Eubanks (aeubanks)

Changes

Reverts llvm/llvm-project#198838

Test failing at https://lab.llvm.org/buildbot/#/builders/190/builds/43494


Patch is 26.91 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/201622.diff

33 Files Affected:

  • (modified) clang/docs/ReleaseNotes.rst (-3)
  • (modified) clang/docs/UsersManual.rst (-4)
  • (modified) clang/include/clang/Options/Options.td (-4)
  • (modified) clang/lib/Driver/Driver.cpp (+7-73)
  • (removed) clang/test/Driver/Inputs/empty.h (-1)
  • (removed) clang/test/Driver/Inputs/module.modulemap (-3)
  • (modified) clang/test/Driver/crash-diagnostics-dir-3.c (+1-1)
  • (modified) clang/test/Driver/crash-diagnostics-dir.c (+1-1)
  • (removed) clang/test/Driver/crash-diagnostics-modules.c (-16)
  • (removed) clang/test/Driver/crash-diagnostics-tar.c (-36)
  • (modified) clang/test/Driver/crash-ir-repro.cpp (+1-1)
  • (modified) clang/test/Driver/crash-report-clang-cl.cpp (+1-1)
  • (modified) clang/test/Driver/crash-report-crashfile.m (+2-2)
  • (modified) clang/test/Driver/crash-report-header.h (+1-1)
  • (modified) clang/test/Driver/crash-report-modules.m (+2-2)
  • (modified) clang/test/Driver/crash-report-multi-arch.c (+1-1)
  • (modified) clang/test/Driver/crash-report-null.test (+2-2)
  • (modified) clang/test/Driver/crash-report-spaces.c (+1-1)
  • (modified) clang/test/Driver/crash-report-with-asserts.c (+1-1)
  • (modified) clang/test/Driver/crash-report.cpp (+1-1)
  • (modified) clang/test/Driver/lld-repro.c (+2-2)
  • (modified) clang/test/Modules/crash-vfs-headermaps.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-include-pch.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-ivfsoverlay.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-emptydir-entries.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-symlink-component.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-symlink-topheader.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-traversal.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-relative-incdir.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-relative-overlay.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-run-reproducer.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-umbrella-frameworks.m (+1-1)
  • (modified) clang/tools/driver/driver.cpp (+2-2)
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 812603f7ffe1b..2307ee7e07d64 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -354,9 +354,6 @@ New Compiler Flags
   that ``bool`` values loaded from memory cannot have a bit pattern other
   than 0 or 1.
 
-- New option ``-fcrash-diagnostics-tar`` added to create an archive of crash
-  reproducer files for easier bug filing.
-
 Deprecated Compiler Flags
 -------------------------
 
diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst
index 3f4b1585e5935..3392a210f0bb0 100644
--- a/clang/docs/UsersManual.rst
+++ b/clang/docs/UsersManual.rst
@@ -763,10 +763,6 @@ control the crash diagnostics.
    Like ``-fcrash-diagnostics-dir=<dir>``, specifies where to write the
    crash diagnostics files, but with lower precedence than the option.
 
-.. option:: -fcrash-diagnostics-tar=<path>
-
-  Specify where to write the crash diagnostics files as a tarball.
-
 Clang is also capable of generating preprocessed source file(s) and associated
 run script(s) even without a crash. This is especially useful when trying to
 generate a reproducer for warnings or errors while using modules.
diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td
index 8f515c802bc19..8451a3698ef17 100644
--- a/clang/include/clang/Options/Options.td
+++ b/clang/include/clang/Options/Options.td
@@ -2184,10 +2184,6 @@ def fcrash_diagnostics_dir : Joined<["-"], "fcrash-diagnostics-dir=">,
   Group<f_clang_Group>, Flags<[NoArgumentUnused]>,
   Visibility<[ClangOption, CLOption, DXCOption]>,
   HelpText<"Put crash-report files in <dir>">, MetaVarName<"<dir>">;
-def fcrash_diagnostics_tar : Joined<["-"], "fcrash-diagnostics-tar=">,
-  Group<f_clang_Group>, Flags<[NoArgumentUnused]>,
-  Visibility<[ClangOption, CLOption, DXCOption]>,
-  HelpText<"Put crash-report tarball at <path>">, MetaVarName<"<path>">;
 def fcreate_profile : Flag<["-"], "fcreate-profile">, Group<f_Group>;
 defm cxx_exceptions: BoolFOption<"cxx-exceptions",
   LangOpts<"CXXExceptions">, DefaultFalse,
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index be281f7aeb4a4..921b1af83877c 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -98,14 +98,12 @@
 #include "llvm/Support/IOSandbox.h"
 #include "llvm/Support/JSON.h"
 #include "llvm/Support/MD5.h"
-#include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Path.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Process.h"
 #include "llvm/Support/Program.h"
 #include "llvm/Support/Regex.h"
 #include "llvm/Support/StringSaver.h"
-#include "llvm/Support/TarWriter.h"
 #include "llvm/Support/VirtualFileSystem.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/TargetParser/Host.h"
@@ -1964,9 +1962,10 @@ bool Driver::getCrashDiagnosticFile(StringRef ReproCrashFilename,
   return false;
 }
 
-static const char BugReportMsg[] =
+static const char BugReporMsg[] =
     "\n********************\n\n"
-    "PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:";
+    "PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:\n"
+    "Preprocessed source(s) and associated run script(s) are located at:";
 
 // When clang crashes, produce diagnostic information including the fully
 // preprocessed source file(s).  Request that the developer attach the
@@ -1977,8 +1976,6 @@ void Driver::generateCompilationDiagnostics(
   if (C.getArgs().hasArg(options::OPT_fno_crash_diagnostics))
     return;
 
-  bool HasCrashTar = C.getArgs().hasArg(options::OPT_fcrash_diagnostics_tar);
-
   unsigned Level = 1;
   if (Arg *A = C.getArgs().getLastArg(options::OPT_fcrash_diagnostics_EQ)) {
     Level = llvm::StringSwitch<unsigned>(A->getValue())
@@ -2039,7 +2036,7 @@ void Driver::generateCompilationDiagnostics(
 
     // Redirect stdout/stderr to /dev/null.
     NewLLDInvocation.Execute({std::nullopt, {""}, {""}}, nullptr, nullptr);
-    Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReportMsg;
+    Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReporMsg;
     Diag(clang::diag::note_drv_command_failed_diag_msg) << TmpName;
     Diag(clang::diag::note_drv_command_failed_diag_msg)
         << "\n\n********************";
@@ -2180,13 +2177,12 @@ void Driver::generateCompilationDiagnostics(
     TempFiles.push_back(std::string(Path.begin(), Path.end()));
   }
 
-  Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReportMsg;
+  Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReporMsg;
 
   SmallString<128> VFS;
   SmallString<128> ReproCrashFilename;
   for (std::string &TempFile : TempFiles) {
-    if (!HasCrashTar)
-      Diag(clang::diag::note_drv_command_failed_diag_msg) << TempFile;
+    Diag(clang::diag::note_drv_command_failed_diag_msg) << TempFile;
     if (Report)
       Report->TemporaryFiles.push_back(TempFile);
     if (ReproCrashFilename.empty()) {
@@ -2228,69 +2224,7 @@ void Driver::generateCompilationDiagnostics(
                << "\n";
     if (Report)
       Report->TemporaryFiles.push_back(std::string(Script));
-    TempFiles.push_back(std::string(Script));
-    ScriptOS.close();
-    if (!HasCrashTar)
-      Diag(clang::diag::note_drv_command_failed_diag_msg) << Script;
-  }
-
-  if (Arg *A = C.getArgs().getLastArg(options::OPT_fcrash_diagnostics_tar)) {
-    StringRef CrashDiagnosticsTar = A->getValue();
-    Expected<std::unique_ptr<llvm::TarWriter>> TarOrErr =
-        llvm::TarWriter::create(CrashDiagnosticsTar,
-                                llvm::sys::path::stem(CrashDiagnosticsTar));
-    if (!TarOrErr) {
-      Diag(clang::diag::note_drv_command_failed_diag_msg)
-          << (std::string("Error creating reproducer tarball: ") +
-              llvm::toString(TarOrErr.takeError()));
-    } else {
-      std::unique_ptr<llvm::TarWriter> &Tar = *TarOrErr;
-      for (const std::string &TempFile : TempFiles) {
-        if (llvm::sys::fs::is_directory(TempFile)) {
-          std::error_code EC;
-          for (llvm::sys::fs::recursive_directory_iterator I(TempFile, EC), E;
-               I != E && !EC; I.increment(EC)) {
-            if (llvm::sys::fs::is_regular_file(I->path())) {
-              auto BufferOrErr = llvm::MemoryBuffer::getFile(I->path());
-              if (BufferOrErr) {
-                // Construct path of file relative to TempFile.
-                llvm::SmallString<128> PathInTar =
-                    llvm::sys::path::filename(TempFile);
-                StringRef SubPath = I->path();
-                if (SubPath.consume_front(TempFile)) {
-                  if (!SubPath.empty() &&
-                      llvm::sys::path::is_separator(SubPath.front())) {
-                    SubPath = SubPath.drop_front();
-                  }
-                  llvm::sys::path::append(PathInTar, SubPath);
-                  Tar->append(PathInTar, (*BufferOrErr)->getBuffer());
-                }
-              } else {
-                Diag(clang::diag::note_drv_command_failed_diag_msg)
-                    << (std::string("Error reading file for tarball: ") +
-                        I->path());
-              }
-            }
-          }
-          if (EC) {
-            Diag(clang::diag::note_drv_command_failed_diag_msg)
-                << (std::string("Error iterating directory for tarball: ") +
-                    TempFile + " " + EC.message());
-          }
-        } else {
-          auto BufferOrErr = llvm::MemoryBuffer::getFile(TempFile);
-          if (BufferOrErr) {
-            Tar->append(llvm::sys::path::filename(TempFile),
-                        (*BufferOrErr)->getBuffer());
-          } else {
-            Diag(clang::diag::note_drv_command_failed_diag_msg)
-                << (std::string("Error reading file for tarball: ") + TempFile);
-          }
-        }
-      }
-      Diag(clang::diag::note_drv_command_failed_diag_msg)
-          << CrashDiagnosticsTar;
-    }
+    Diag(clang::diag::note_drv_command_failed_diag_msg) << Script;
   }
 
   // On darwin, provide information about the .crash diagnostic report.
diff --git a/clang/test/Driver/Inputs/empty.h b/clang/test/Driver/Inputs/empty.h
deleted file mode 100644
index 655474edc7b65..0000000000000
--- a/clang/test/Driver/Inputs/empty.h
+++ /dev/null
@@ -1 +0,0 @@
-// Empty header
diff --git a/clang/test/Driver/Inputs/module.modulemap b/clang/test/Driver/Inputs/module.modulemap
deleted file mode 100644
index b6edda7ff5dda..0000000000000
--- a/clang/test/Driver/Inputs/module.modulemap
+++ /dev/null
@@ -1,3 +0,0 @@
-module Empty {
-  header "empty.h"
-}
diff --git a/clang/test/Driver/crash-diagnostics-dir-3.c b/clang/test/Driver/crash-diagnostics-dir-3.c
index 753b60ee2e2a0..63a5efc853a4c 100644
--- a/clang/test/Driver/crash-diagnostics-dir-3.c
+++ b/clang/test/Driver/crash-diagnostics-dir-3.c
@@ -2,5 +2,5 @@
 // RUN: rm -rf %t
 // RUN: not %crash_opt env CLANG_CRASH_DIAGNOSTICS_DIR=%t %clang -c %s -o - 2>&1 | FileCheck %s
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK: diagnostic msg: {{.*}}{{/|\\}}crash-diagnostics-dir-3.c.tmp{{(/|\\).*}}.c
diff --git a/clang/test/Driver/crash-diagnostics-dir.c b/clang/test/Driver/crash-diagnostics-dir.c
index 8350ef70f9fef..9a8299bffe005 100644
--- a/clang/test/Driver/crash-diagnostics-dir.c
+++ b/clang/test/Driver/crash-diagnostics-dir.c
@@ -2,5 +2,5 @@
 // RUN: rm -rf %t
 // RUN: not %crash_opt %clang -fcrash-diagnostics-dir=%t -c %s -o - 2>&1 | FileCheck %s
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK: diagnostic msg: {{.*}}{{/|\\}}crash-diagnostics-dir.c.tmp{{(/|\\).*}}.c
diff --git a/clang/test/Driver/crash-diagnostics-modules.c b/clang/test/Driver/crash-diagnostics-modules.c
deleted file mode 100644
index d6228f6b38c98..0000000000000
--- a/clang/test/Driver/crash-diagnostics-modules.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: export LSAN_OPTIONS=detect_leaks=0
-// RUN: rm -rf %t && mkdir %t
-// RUN: cd %t
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=repro.tar -fmodules -fmodules-cache-path=cache -I %S/Inputs -c %s -o /dev/null 2>&1 | FileCheck %s
-// RUN: tar -tf repro.tar | FileCheck %s --check-prefix=TAR
-
-#include "empty.h"
-
-#pragma clang __debug parser_crash
-
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
-// CHECK: repro.tar
-
-// TAR-DAG: .c
-// TAR-DAG: .sh
-// TAR-DAG: .cache/{{.*}}module.modulemap
diff --git a/clang/test/Driver/crash-diagnostics-tar.c b/clang/test/Driver/crash-diagnostics-tar.c
deleted file mode 100644
index 681e5cde4a471..0000000000000
--- a/clang/test/Driver/crash-diagnostics-tar.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// RUN: export LSAN_OPTIONS=detect_leaks=0
-// RUN: rm -rf %t && mkdir %t
-// RUN: cd %t
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=repro.tar -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=TAR
-// RUN: mkdir extract
-// RUN: tar -xf repro.tar -C extract
-// RUN: FileCheck %s --check-prefix=SH < extract/*/crash-diagnostics-tar-*.sh
-// RUN: FileCheck %s --check-prefix=C < extract/*/crash-diagnostics-tar-*.c
-
-// RUN: not %crash_opt %clang -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=NOTAR
-
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=%t/nonexistent/repro.tar -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=INVALID
-
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=repro-stdin.tar -c -x c - -o /dev/null < %s 2>&1 | FileCheck %s --check-prefix=STDIN
-// RUN: not ls repro-stdin.tar
-
-#pragma clang __debug parser_crash
-
-// TAR: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
-// TAR: repro.tar
-// TAR-NOT: .c
-// TAR-NOT: .sh
-
-// NOTAR: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
-// NOTAR: .c
-// NOTAR: .sh
-// NOTAR-NOT: .tar
-
-// INVALID: Error creating reproducer tarball:
-
-// SH: # Crash reproducer for
-// C: # 1 "
-
-// STDIN: PLEASE submit a bug report to
-// STDIN: note: diagnostic msg: Error generating preprocessed source(s) - ignoring input from stdin.
-// STDIN: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
diff --git a/clang/test/Driver/crash-ir-repro.cpp b/clang/test/Driver/crash-ir-repro.cpp
index 4f6cf93189627..599c656f0936e 100644
--- a/clang/test/Driver/crash-ir-repro.cpp
+++ b/clang/test/Driver/crash-ir-repro.cpp
@@ -1,7 +1,7 @@
 // RUN: %clang -S -emit-llvm -o %t.ll %s
 // RUN: not %crash_opt %clang -S -DCRASH %s -o %t.ll 2>&1 | FileCheck %s
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: clang: note: diagnostic msg: {{.*}}.cpp
 // CHECK-NEXT: clang: note: diagnostic msg: {{.*}}.sh
 
diff --git a/clang/test/Driver/crash-report-clang-cl.cpp b/clang/test/Driver/crash-report-clang-cl.cpp
index e97210aa952dc..f61b94626f584 100644
--- a/clang/test/Driver/crash-report-clang-cl.cpp
+++ b/clang/test/Driver/crash-report-clang-cl.cpp
@@ -11,7 +11,7 @@
 
 #pragma clang __debug crash
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 
 // __has_feature(cxx_exceptions) is default-off in the cl-compatible driver.
 FOO
diff --git a/clang/test/Driver/crash-report-crashfile.m b/clang/test/Driver/crash-report-crashfile.m
index 9479d1fdd03f2..dd55b0dbb77e0 100644
--- a/clang/test/Driver/crash-report-crashfile.m
+++ b/clang/test/Driver/crash-report-crashfile.m
@@ -19,7 +19,7 @@
 
 // CRASH_ENV: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script.
 // CRASH_ENV: failing because environment variable 'FORCE_CLANG_DIAGNOSTICS_CRASH' is set
-// CRASH_ENV: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CRASH_ENV: Preprocessed source(s) and associated run script(s) are located at:
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.m
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.cache
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.sh
@@ -27,7 +27,7 @@
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}Library/Logs/DiagnosticReports{{.*}}
 
 // CRASH_FLAG: failing because '-gen-reproducer' is used
-// CRASH_FLAG: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CRASH_FLAG: Preprocessed source(s) and associated run script(s) are located at:
 // CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.m
 // CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.cache
 // CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.sh
diff --git a/clang/test/Driver/crash-report-header.h b/clang/test/Driver/crash-report-header.h
index 9208cea53d1d0..6d5156537126d 100644
--- a/clang/test/Driver/crash-report-header.h
+++ b/clang/test/Driver/crash-report-header.h
@@ -7,7 +7,7 @@
 // REQUIRES: crash-recovery
 
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.h
 FOO
 // CHECKSRC: FOO
diff --git a/clang/test/Driver/crash-report-modules.m b/clang/test/Driver/crash-report-modules.m
index 27f2ba2dfbb7d..7f669dc8ededd 100644
--- a/clang/test/Driver/crash-report-modules.m
+++ b/clang/test/Driver/crash-report-modules.m
@@ -16,8 +16,8 @@
 @import simple;
 const int x = MODULE_MACRO;
 
-// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace and dumped files.
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script.
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.m
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.cache
 
diff --git a/clang/test/Driver/crash-report-multi-arch.c b/clang/test/Driver/crash-report-multi-arch.c
index 7007d5c718045..423fd1dc38bfe 100644
--- a/clang/test/Driver/crash-report-multi-arch.c
+++ b/clang/test/Driver/crash-report-multi-arch.c
@@ -38,7 +38,7 @@
 // REQUIRES: crash-recovery, system-darwin
 // REQUIRES: aarch64-registered-target, x86-registered-target
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-{{.*}}.c
 
 // CHECKSH-x86_64: # Crash reproducer
diff --git a/clang/test/Driver/crash-report-null.test b/clang/test/Driver/crash-report-null.test
index 8faaaf6e140f2..c5e3b3b0fc9ca 100644
--- a/clang/test/Driver/crash-report-null.test
+++ b/clang/test/Driver/crash-report-null.test
@@ -3,6 +3,6 @@
 // FIXME: Investigating. "fatal error: file 'nul' modified since it was first processed"
 // UNSUPPORTED: system-windows
 
-// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace and dumped files.
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script.
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}null-{{.*}}.c
diff --git a/clang/test/Driver/crash-report-spaces.c b/clang/test/Driver/crash-report-spaces.c
index 59d441445a89e..b5fbb59683fc0 100644
--- a/clang/test/Driver/crash-report-spaces.c
+++ b/clang/test/Driver/crash-report-spaces.c
@@ -8,7 +8,7 @@
 // REQUIRES: crash-recovery
 
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.c
 FOO
 // CHECKSRC: FOO
diff --git a/clang/test/Driver/crash-report-with-asserts.c b/clang/test/Driver/crash-report-with-asserts.c
index 3885a20dc4de6..278860a9158e4 100644
--- a/clang/test/Driver/crash-report-with-asserts.c
+++ b/clang/test/Driver/crash-report-with-asserts.c
@@ -30,7 +30,7 @@
 #pragma clang __debug llvm_unreachable
 #endif
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-with-asserts-{{.*}}.c
 FOO
 // CHECKSRC: FOO
diff --git a/clang/test/Driver/crash-report.cpp b/clang/test/Driver/crash-report.cpp
index 9fb79b3987650..c431940bf9ea1 100644
--- a/clang/test/Driver/crash-report.cpp
+++ b/clang/test/Driver/crash-report.cpp
@@ -61,7 +61,7 @@
 #pragma clang __debug llvm_fatal_error
 #endif
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-{{.*}}.cpp
 
 // __has_feature(cxx_exceptions) is default-on in the gcc-compatible driver.
diff --git a/clang/test/Driver/lld-repro.c b/clang/test/Driver/lld-repro.c
index c2e5b0eb67ef1..0e6340865b738 100644
--- a/clang/test/Driver/lld-repro.c
+++ b/clang/test/Driver/lld-repro.c
@@ -15,7 +15,7 @@
 // check that we still get lld's output
 // CHECK: error: undefined symbol: {{_?}}a
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}linker-crash-{{.*}}.tar
 // CHECK-NEXT: note: diagnostic msg:
 // CHECK: ********************
@@ -25,7 +25,7 @@
 // RUN: not %clang %s @%t.rsp -o /dev/null 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=NO-LINKER
 
-// NO-LINKER-NOT: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// NO-LINKER-NOT: Preprocessed source(s) and associated run script(s) are located at:
 
 extern int a;
 int main() {
diff --git a/clang/test/Modules/crash-vfs-headermaps.m b/clang/test/Modules/crash-vfs-headermaps.m
index 1104b26cb8242..26ff3f26450b5 100...
[truncated]

@llvmorg-github-actions
Copy link
Copy Markdown

@llvm/pr-subscribers-clang-modules

Author: Arthur Eubanks (aeubanks)

Changes

Reverts llvm/llvm-project#198838

Test failing at https://lab.llvm.org/buildbot/#/builders/190/builds/43494


Patch is 26.91 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/201622.diff

33 Files Affected:

  • (modified) clang/docs/ReleaseNotes.rst (-3)
  • (modified) clang/docs/UsersManual.rst (-4)
  • (modified) clang/include/clang/Options/Options.td (-4)
  • (modified) clang/lib/Driver/Driver.cpp (+7-73)
  • (removed) clang/test/Driver/Inputs/empty.h (-1)
  • (removed) clang/test/Driver/Inputs/module.modulemap (-3)
  • (modified) clang/test/Driver/crash-diagnostics-dir-3.c (+1-1)
  • (modified) clang/test/Driver/crash-diagnostics-dir.c (+1-1)
  • (removed) clang/test/Driver/crash-diagnostics-modules.c (-16)
  • (removed) clang/test/Driver/crash-diagnostics-tar.c (-36)
  • (modified) clang/test/Driver/crash-ir-repro.cpp (+1-1)
  • (modified) clang/test/Driver/crash-report-clang-cl.cpp (+1-1)
  • (modified) clang/test/Driver/crash-report-crashfile.m (+2-2)
  • (modified) clang/test/Driver/crash-report-header.h (+1-1)
  • (modified) clang/test/Driver/crash-report-modules.m (+2-2)
  • (modified) clang/test/Driver/crash-report-multi-arch.c (+1-1)
  • (modified) clang/test/Driver/crash-report-null.test (+2-2)
  • (modified) clang/test/Driver/crash-report-spaces.c (+1-1)
  • (modified) clang/test/Driver/crash-report-with-asserts.c (+1-1)
  • (modified) clang/test/Driver/crash-report.cpp (+1-1)
  • (modified) clang/test/Driver/lld-repro.c (+2-2)
  • (modified) clang/test/Modules/crash-vfs-headermaps.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-include-pch.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-ivfsoverlay.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-emptydir-entries.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-symlink-component.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-symlink-topheader.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-path-traversal.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-relative-incdir.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-relative-overlay.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-run-reproducer.m (+1-1)
  • (modified) clang/test/Modules/crash-vfs-umbrella-frameworks.m (+1-1)
  • (modified) clang/tools/driver/driver.cpp (+2-2)
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 812603f7ffe1b..2307ee7e07d64 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -354,9 +354,6 @@ New Compiler Flags
   that ``bool`` values loaded from memory cannot have a bit pattern other
   than 0 or 1.
 
-- New option ``-fcrash-diagnostics-tar`` added to create an archive of crash
-  reproducer files for easier bug filing.
-
 Deprecated Compiler Flags
 -------------------------
 
diff --git a/clang/docs/UsersManual.rst b/clang/docs/UsersManual.rst
index 3f4b1585e5935..3392a210f0bb0 100644
--- a/clang/docs/UsersManual.rst
+++ b/clang/docs/UsersManual.rst
@@ -763,10 +763,6 @@ control the crash diagnostics.
    Like ``-fcrash-diagnostics-dir=<dir>``, specifies where to write the
    crash diagnostics files, but with lower precedence than the option.
 
-.. option:: -fcrash-diagnostics-tar=<path>
-
-  Specify where to write the crash diagnostics files as a tarball.
-
 Clang is also capable of generating preprocessed source file(s) and associated
 run script(s) even without a crash. This is especially useful when trying to
 generate a reproducer for warnings or errors while using modules.
diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td
index 8f515c802bc19..8451a3698ef17 100644
--- a/clang/include/clang/Options/Options.td
+++ b/clang/include/clang/Options/Options.td
@@ -2184,10 +2184,6 @@ def fcrash_diagnostics_dir : Joined<["-"], "fcrash-diagnostics-dir=">,
   Group<f_clang_Group>, Flags<[NoArgumentUnused]>,
   Visibility<[ClangOption, CLOption, DXCOption]>,
   HelpText<"Put crash-report files in <dir>">, MetaVarName<"<dir>">;
-def fcrash_diagnostics_tar : Joined<["-"], "fcrash-diagnostics-tar=">,
-  Group<f_clang_Group>, Flags<[NoArgumentUnused]>,
-  Visibility<[ClangOption, CLOption, DXCOption]>,
-  HelpText<"Put crash-report tarball at <path>">, MetaVarName<"<path>">;
 def fcreate_profile : Flag<["-"], "fcreate-profile">, Group<f_Group>;
 defm cxx_exceptions: BoolFOption<"cxx-exceptions",
   LangOpts<"CXXExceptions">, DefaultFalse,
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index be281f7aeb4a4..921b1af83877c 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -98,14 +98,12 @@
 #include "llvm/Support/IOSandbox.h"
 #include "llvm/Support/JSON.h"
 #include "llvm/Support/MD5.h"
-#include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Path.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Process.h"
 #include "llvm/Support/Program.h"
 #include "llvm/Support/Regex.h"
 #include "llvm/Support/StringSaver.h"
-#include "llvm/Support/TarWriter.h"
 #include "llvm/Support/VirtualFileSystem.h"
 #include "llvm/Support/raw_ostream.h"
 #include "llvm/TargetParser/Host.h"
@@ -1964,9 +1962,10 @@ bool Driver::getCrashDiagnosticFile(StringRef ReproCrashFilename,
   return false;
 }
 
-static const char BugReportMsg[] =
+static const char BugReporMsg[] =
     "\n********************\n\n"
-    "PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:";
+    "PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:\n"
+    "Preprocessed source(s) and associated run script(s) are located at:";
 
 // When clang crashes, produce diagnostic information including the fully
 // preprocessed source file(s).  Request that the developer attach the
@@ -1977,8 +1976,6 @@ void Driver::generateCompilationDiagnostics(
   if (C.getArgs().hasArg(options::OPT_fno_crash_diagnostics))
     return;
 
-  bool HasCrashTar = C.getArgs().hasArg(options::OPT_fcrash_diagnostics_tar);
-
   unsigned Level = 1;
   if (Arg *A = C.getArgs().getLastArg(options::OPT_fcrash_diagnostics_EQ)) {
     Level = llvm::StringSwitch<unsigned>(A->getValue())
@@ -2039,7 +2036,7 @@ void Driver::generateCompilationDiagnostics(
 
     // Redirect stdout/stderr to /dev/null.
     NewLLDInvocation.Execute({std::nullopt, {""}, {""}}, nullptr, nullptr);
-    Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReportMsg;
+    Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReporMsg;
     Diag(clang::diag::note_drv_command_failed_diag_msg) << TmpName;
     Diag(clang::diag::note_drv_command_failed_diag_msg)
         << "\n\n********************";
@@ -2180,13 +2177,12 @@ void Driver::generateCompilationDiagnostics(
     TempFiles.push_back(std::string(Path.begin(), Path.end()));
   }
 
-  Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReportMsg;
+  Diag(clang::diag::note_drv_command_failed_diag_msg) << BugReporMsg;
 
   SmallString<128> VFS;
   SmallString<128> ReproCrashFilename;
   for (std::string &TempFile : TempFiles) {
-    if (!HasCrashTar)
-      Diag(clang::diag::note_drv_command_failed_diag_msg) << TempFile;
+    Diag(clang::diag::note_drv_command_failed_diag_msg) << TempFile;
     if (Report)
       Report->TemporaryFiles.push_back(TempFile);
     if (ReproCrashFilename.empty()) {
@@ -2228,69 +2224,7 @@ void Driver::generateCompilationDiagnostics(
                << "\n";
     if (Report)
       Report->TemporaryFiles.push_back(std::string(Script));
-    TempFiles.push_back(std::string(Script));
-    ScriptOS.close();
-    if (!HasCrashTar)
-      Diag(clang::diag::note_drv_command_failed_diag_msg) << Script;
-  }
-
-  if (Arg *A = C.getArgs().getLastArg(options::OPT_fcrash_diagnostics_tar)) {
-    StringRef CrashDiagnosticsTar = A->getValue();
-    Expected<std::unique_ptr<llvm::TarWriter>> TarOrErr =
-        llvm::TarWriter::create(CrashDiagnosticsTar,
-                                llvm::sys::path::stem(CrashDiagnosticsTar));
-    if (!TarOrErr) {
-      Diag(clang::diag::note_drv_command_failed_diag_msg)
-          << (std::string("Error creating reproducer tarball: ") +
-              llvm::toString(TarOrErr.takeError()));
-    } else {
-      std::unique_ptr<llvm::TarWriter> &Tar = *TarOrErr;
-      for (const std::string &TempFile : TempFiles) {
-        if (llvm::sys::fs::is_directory(TempFile)) {
-          std::error_code EC;
-          for (llvm::sys::fs::recursive_directory_iterator I(TempFile, EC), E;
-               I != E && !EC; I.increment(EC)) {
-            if (llvm::sys::fs::is_regular_file(I->path())) {
-              auto BufferOrErr = llvm::MemoryBuffer::getFile(I->path());
-              if (BufferOrErr) {
-                // Construct path of file relative to TempFile.
-                llvm::SmallString<128> PathInTar =
-                    llvm::sys::path::filename(TempFile);
-                StringRef SubPath = I->path();
-                if (SubPath.consume_front(TempFile)) {
-                  if (!SubPath.empty() &&
-                      llvm::sys::path::is_separator(SubPath.front())) {
-                    SubPath = SubPath.drop_front();
-                  }
-                  llvm::sys::path::append(PathInTar, SubPath);
-                  Tar->append(PathInTar, (*BufferOrErr)->getBuffer());
-                }
-              } else {
-                Diag(clang::diag::note_drv_command_failed_diag_msg)
-                    << (std::string("Error reading file for tarball: ") +
-                        I->path());
-              }
-            }
-          }
-          if (EC) {
-            Diag(clang::diag::note_drv_command_failed_diag_msg)
-                << (std::string("Error iterating directory for tarball: ") +
-                    TempFile + " " + EC.message());
-          }
-        } else {
-          auto BufferOrErr = llvm::MemoryBuffer::getFile(TempFile);
-          if (BufferOrErr) {
-            Tar->append(llvm::sys::path::filename(TempFile),
-                        (*BufferOrErr)->getBuffer());
-          } else {
-            Diag(clang::diag::note_drv_command_failed_diag_msg)
-                << (std::string("Error reading file for tarball: ") + TempFile);
-          }
-        }
-      }
-      Diag(clang::diag::note_drv_command_failed_diag_msg)
-          << CrashDiagnosticsTar;
-    }
+    Diag(clang::diag::note_drv_command_failed_diag_msg) << Script;
   }
 
   // On darwin, provide information about the .crash diagnostic report.
diff --git a/clang/test/Driver/Inputs/empty.h b/clang/test/Driver/Inputs/empty.h
deleted file mode 100644
index 655474edc7b65..0000000000000
--- a/clang/test/Driver/Inputs/empty.h
+++ /dev/null
@@ -1 +0,0 @@
-// Empty header
diff --git a/clang/test/Driver/Inputs/module.modulemap b/clang/test/Driver/Inputs/module.modulemap
deleted file mode 100644
index b6edda7ff5dda..0000000000000
--- a/clang/test/Driver/Inputs/module.modulemap
+++ /dev/null
@@ -1,3 +0,0 @@
-module Empty {
-  header "empty.h"
-}
diff --git a/clang/test/Driver/crash-diagnostics-dir-3.c b/clang/test/Driver/crash-diagnostics-dir-3.c
index 753b60ee2e2a0..63a5efc853a4c 100644
--- a/clang/test/Driver/crash-diagnostics-dir-3.c
+++ b/clang/test/Driver/crash-diagnostics-dir-3.c
@@ -2,5 +2,5 @@
 // RUN: rm -rf %t
 // RUN: not %crash_opt env CLANG_CRASH_DIAGNOSTICS_DIR=%t %clang -c %s -o - 2>&1 | FileCheck %s
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK: diagnostic msg: {{.*}}{{/|\\}}crash-diagnostics-dir-3.c.tmp{{(/|\\).*}}.c
diff --git a/clang/test/Driver/crash-diagnostics-dir.c b/clang/test/Driver/crash-diagnostics-dir.c
index 8350ef70f9fef..9a8299bffe005 100644
--- a/clang/test/Driver/crash-diagnostics-dir.c
+++ b/clang/test/Driver/crash-diagnostics-dir.c
@@ -2,5 +2,5 @@
 // RUN: rm -rf %t
 // RUN: not %crash_opt %clang -fcrash-diagnostics-dir=%t -c %s -o - 2>&1 | FileCheck %s
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK: diagnostic msg: {{.*}}{{/|\\}}crash-diagnostics-dir.c.tmp{{(/|\\).*}}.c
diff --git a/clang/test/Driver/crash-diagnostics-modules.c b/clang/test/Driver/crash-diagnostics-modules.c
deleted file mode 100644
index d6228f6b38c98..0000000000000
--- a/clang/test/Driver/crash-diagnostics-modules.c
+++ /dev/null
@@ -1,16 +0,0 @@
-// RUN: export LSAN_OPTIONS=detect_leaks=0
-// RUN: rm -rf %t && mkdir %t
-// RUN: cd %t
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=repro.tar -fmodules -fmodules-cache-path=cache -I %S/Inputs -c %s -o /dev/null 2>&1 | FileCheck %s
-// RUN: tar -tf repro.tar | FileCheck %s --check-prefix=TAR
-
-#include "empty.h"
-
-#pragma clang __debug parser_crash
-
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
-// CHECK: repro.tar
-
-// TAR-DAG: .c
-// TAR-DAG: .sh
-// TAR-DAG: .cache/{{.*}}module.modulemap
diff --git a/clang/test/Driver/crash-diagnostics-tar.c b/clang/test/Driver/crash-diagnostics-tar.c
deleted file mode 100644
index 681e5cde4a471..0000000000000
--- a/clang/test/Driver/crash-diagnostics-tar.c
+++ /dev/null
@@ -1,36 +0,0 @@
-// RUN: export LSAN_OPTIONS=detect_leaks=0
-// RUN: rm -rf %t && mkdir %t
-// RUN: cd %t
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=repro.tar -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=TAR
-// RUN: mkdir extract
-// RUN: tar -xf repro.tar -C extract
-// RUN: FileCheck %s --check-prefix=SH < extract/*/crash-diagnostics-tar-*.sh
-// RUN: FileCheck %s --check-prefix=C < extract/*/crash-diagnostics-tar-*.c
-
-// RUN: not %crash_opt %clang -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=NOTAR
-
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=%t/nonexistent/repro.tar -c %s -o /dev/null 2>&1 | FileCheck %s --check-prefix=INVALID
-
-// RUN: not %crash_opt %clang -fcrash-diagnostics-tar=repro-stdin.tar -c -x c - -o /dev/null < %s 2>&1 | FileCheck %s --check-prefix=STDIN
-// RUN: not ls repro-stdin.tar
-
-#pragma clang __debug parser_crash
-
-// TAR: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
-// TAR: repro.tar
-// TAR-NOT: .c
-// TAR-NOT: .sh
-
-// NOTAR: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
-// NOTAR: .c
-// NOTAR: .sh
-// NOTAR-NOT: .tar
-
-// INVALID: Error creating reproducer tarball:
-
-// SH: # Crash reproducer for
-// C: # 1 "
-
-// STDIN: PLEASE submit a bug report to
-// STDIN: note: diagnostic msg: Error generating preprocessed source(s) - ignoring input from stdin.
-// STDIN: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
diff --git a/clang/test/Driver/crash-ir-repro.cpp b/clang/test/Driver/crash-ir-repro.cpp
index 4f6cf93189627..599c656f0936e 100644
--- a/clang/test/Driver/crash-ir-repro.cpp
+++ b/clang/test/Driver/crash-ir-repro.cpp
@@ -1,7 +1,7 @@
 // RUN: %clang -S -emit-llvm -o %t.ll %s
 // RUN: not %crash_opt %clang -S -DCRASH %s -o %t.ll 2>&1 | FileCheck %s
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: clang: note: diagnostic msg: {{.*}}.cpp
 // CHECK-NEXT: clang: note: diagnostic msg: {{.*}}.sh
 
diff --git a/clang/test/Driver/crash-report-clang-cl.cpp b/clang/test/Driver/crash-report-clang-cl.cpp
index e97210aa952dc..f61b94626f584 100644
--- a/clang/test/Driver/crash-report-clang-cl.cpp
+++ b/clang/test/Driver/crash-report-clang-cl.cpp
@@ -11,7 +11,7 @@
 
 #pragma clang __debug crash
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 
 // __has_feature(cxx_exceptions) is default-off in the cl-compatible driver.
 FOO
diff --git a/clang/test/Driver/crash-report-crashfile.m b/clang/test/Driver/crash-report-crashfile.m
index 9479d1fdd03f2..dd55b0dbb77e0 100644
--- a/clang/test/Driver/crash-report-crashfile.m
+++ b/clang/test/Driver/crash-report-crashfile.m
@@ -19,7 +19,7 @@
 
 // CRASH_ENV: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script.
 // CRASH_ENV: failing because environment variable 'FORCE_CLANG_DIAGNOSTICS_CRASH' is set
-// CRASH_ENV: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CRASH_ENV: Preprocessed source(s) and associated run script(s) are located at:
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.m
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.cache
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}.sh
@@ -27,7 +27,7 @@
 // CRASH_ENV-NEXT: note: diagnostic msg: {{.*}}Library/Logs/DiagnosticReports{{.*}}
 
 // CRASH_FLAG: failing because '-gen-reproducer' is used
-// CRASH_FLAG: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CRASH_FLAG: Preprocessed source(s) and associated run script(s) are located at:
 // CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.m
 // CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.cache
 // CRASH_FLAG-NEXT: note: diagnostic msg: {{.*}}.sh
diff --git a/clang/test/Driver/crash-report-header.h b/clang/test/Driver/crash-report-header.h
index 9208cea53d1d0..6d5156537126d 100644
--- a/clang/test/Driver/crash-report-header.h
+++ b/clang/test/Driver/crash-report-header.h
@@ -7,7 +7,7 @@
 // REQUIRES: crash-recovery
 
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.h
 FOO
 // CHECKSRC: FOO
diff --git a/clang/test/Driver/crash-report-modules.m b/clang/test/Driver/crash-report-modules.m
index 27f2ba2dfbb7d..7f669dc8ededd 100644
--- a/clang/test/Driver/crash-report-modules.m
+++ b/clang/test/Driver/crash-report-modules.m
@@ -16,8 +16,8 @@
 @import simple;
 const int x = MODULE_MACRO;
 
-// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace and dumped files.
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script.
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.m
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.cache
 
diff --git a/clang/test/Driver/crash-report-multi-arch.c b/clang/test/Driver/crash-report-multi-arch.c
index 7007d5c718045..423fd1dc38bfe 100644
--- a/clang/test/Driver/crash-report-multi-arch.c
+++ b/clang/test/Driver/crash-report-multi-arch.c
@@ -38,7 +38,7 @@
 // REQUIRES: crash-recovery, system-darwin
 // REQUIRES: aarch64-registered-target, x86-registered-target
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-{{.*}}.c
 
 // CHECKSH-x86_64: # Crash reproducer
diff --git a/clang/test/Driver/crash-report-null.test b/clang/test/Driver/crash-report-null.test
index 8faaaf6e140f2..c5e3b3b0fc9ca 100644
--- a/clang/test/Driver/crash-report-null.test
+++ b/clang/test/Driver/crash-report-null.test
@@ -3,6 +3,6 @@
 // FIXME: Investigating. "fatal error: file 'nul' modified since it was first processed"
 // UNSUPPORTED: system-windows
 
-// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace and dumped files.
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: PLEASE submit a bug report to {{.*}} and include the crash backtrace, preprocessed source, and associated run script.
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}null-{{.*}}.c
diff --git a/clang/test/Driver/crash-report-spaces.c b/clang/test/Driver/crash-report-spaces.c
index 59d441445a89e..b5fbb59683fc0 100644
--- a/clang/test/Driver/crash-report-spaces.c
+++ b/clang/test/Driver/crash-report-spaces.c
@@ -8,7 +8,7 @@
 // REQUIRES: crash-recovery
 
 #pragma clang __debug parser_crash
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}.c
 FOO
 // CHECKSRC: FOO
diff --git a/clang/test/Driver/crash-report-with-asserts.c b/clang/test/Driver/crash-report-with-asserts.c
index 3885a20dc4de6..278860a9158e4 100644
--- a/clang/test/Driver/crash-report-with-asserts.c
+++ b/clang/test/Driver/crash-report-with-asserts.c
@@ -30,7 +30,7 @@
 #pragma clang __debug llvm_unreachable
 #endif
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-with-asserts-{{.*}}.c
 FOO
 // CHECKSRC: FOO
diff --git a/clang/test/Driver/crash-report.cpp b/clang/test/Driver/crash-report.cpp
index 9fb79b3987650..c431940bf9ea1 100644
--- a/clang/test/Driver/crash-report.cpp
+++ b/clang/test/Driver/crash-report.cpp
@@ -61,7 +61,7 @@
 #pragma clang __debug llvm_fatal_error
 #endif
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-{{.*}}.cpp
 
 // __has_feature(cxx_exceptions) is default-on in the gcc-compatible driver.
diff --git a/clang/test/Driver/lld-repro.c b/clang/test/Driver/lld-repro.c
index c2e5b0eb67ef1..0e6340865b738 100644
--- a/clang/test/Driver/lld-repro.c
+++ b/clang/test/Driver/lld-repro.c
@@ -15,7 +15,7 @@
 // check that we still get lld's output
 // CHECK: error: undefined symbol: {{_?}}a
 
-// CHECK: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// CHECK: Preprocessed source(s) and associated run script(s) are located at:
 // CHECK-NEXT: note: diagnostic msg: {{.*}}linker-crash-{{.*}}.tar
 // CHECK-NEXT: note: diagnostic msg:
 // CHECK: ********************
@@ -25,7 +25,7 @@
 // RUN: not %clang %s @%t.rsp -o /dev/null 2>&1 \
 // RUN:   | FileCheck %s --check-prefix=NO-LINKER
 
-// NO-LINKER-NOT: PLEASE ATTACH THE FOLLOWING CRASH REPRODUCER FILES TO THE BUG REPORT:
+// NO-LINKER-NOT: Preprocessed source(s) and associated run script(s) are located at:
 
 extern int a;
 int main() {
diff --git a/clang/test/Modules/crash-vfs-headermaps.m b/clang/test/Modules/crash-vfs-headermaps.m
index 1104b26cb8242..26ff3f26450b5 100...
[truncated]

@aeubanks aeubanks merged commit 69f7aeb into main Jun 4, 2026
14 of 15 checks passed
@aeubanks aeubanks deleted the revert-198838-crash branch June 4, 2026 16:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang:modules C++20 modules and Clang Header Modules clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant