@@ -859,13 +859,22 @@ extern "C" {
859859 typedef struct CXOpaqueDependencyScannerServiceOptions
860860 *CXDependencyScannerServiceOptions;
861861
862+ typedef struct CXOpaqueDependencyScannerReproducerOptions
863+ *CXDependencyScannerReproducerOptions;
864+
865+ CXDependencyScannerReproducerOptions
866+ (*clang_experimental_DependencyScannerReproducerOptions_create)(
867+ int argc, const char *const *argv, const char *ModuleName, const char *WorkingDirectory,
868+ const char *ReproducerLocation, bool UseUniqueReproducerName);
869+
870+ void (*clang_experimental_DependencyScannerReproducerOptions_dispose)(CXDependencyScannerReproducerOptions);
871+
862872 /* *
863873 * Generate a self-contained reproducer in a specified location to re-run the compilation.
864874 */
865875 enum CXErrorCode
866876 (*clang_experimental_DependencyScanner_generateReproducer)(
867- int argc, const char *const *argv, const char *WorkingDirectory,
868- const char *ReproducerLocation, bool UseUniqueReproducerName,
877+ CXDependencyScannerReproducerOptions options,
869878 CXString *messageOut);
870879
871880 /* *
@@ -1433,6 +1442,8 @@ struct LibclangWrapper {
14331442 LOOKUP_OPTIONAL (clang_experimental_cas_ReplayResult_dispose);
14341443 LOOKUP_OPTIONAL (clang_experimental_cas_ReplayResult_getStderr);
14351444 LOOKUP_OPTIONAL (clang_experimental_DependencyScanner_generateReproducer);
1445+ LOOKUP_OPTIONAL (clang_experimental_DependencyScannerReproducerOptions_create);
1446+ LOOKUP_OPTIONAL (clang_experimental_DependencyScannerReproducerOptions_dispose);
14361447 LOOKUP_OPTIONAL (clang_experimental_DependencyScannerServiceOptions_create);
14371448 LOOKUP_OPTIONAL (clang_experimental_DependencyScannerServiceOptions_dispose);
14381449 LOOKUP_OPTIONAL (clang_experimental_DependencyScannerServiceOptions_setDependencyMode);
@@ -2179,9 +2190,11 @@ extern "C" {
21792190 const char **message) {
21802191 auto lib = scanner->scanner ->lib ;
21812192 LibclangFunctions::CXString messageString;
2193+ auto reproducerOpts = lib->fns .clang_experimental_DependencyScannerReproducerOptions_create (
2194+ argc, argv, /* ModuleName=*/ nullptr , workingDirectory, /* ReproducerLocation=*/ nullptr , /* UseUniqueReproducerName=*/ true );
21822195 auto result = lib->fns .clang_experimental_DependencyScanner_generateReproducer (
2183- argc, const_cast < const char **>(argv), workingDirectory,
2184- /* ReproducerLocation= */ NULL , /* UseUniqueReproducerName= */ true , &messageString );
2196+ reproducerOpts, &messageString);
2197+ lib-> fns . clang_experimental_DependencyScannerReproducerOptions_dispose (reproducerOpts );
21852198 if (message) {
21862199 *message = strdup_safe (lib->fns .clang_getCString (messageString));
21872200 }
0 commit comments