The patch, committed as r236423 caused at least two types of regressions:
1. (not reproduced on Windows) :
clang: error: no such file or directory: '"-cc1"'
clang: error: no such file or directory: '"-triple"'
...
2. Macro definitions with quotes were corrupted ( e.g.
-DVAL_CONFIGURE="\"'CFLAGS=-fno-vectorize' 'CC=ccc-analyzer'\"" )
In the updated patch I restricted wrapping an argument with quotes to cases
when an argument has spaces and arguments first symbol is not a quotation mark.
Ok to commit?
http://reviews.llvm.org/D9357
Files:
tools/scan-build/ccc-analyzer
Index: tools/scan-build/ccc-analyzer
===================================================================
--- tools/scan-build/ccc-analyzer
+++ tools/scan-build/ccc-analyzer
@@ -145,7 +145,7 @@
print OUT "@$Args\n";
close OUT;
`uname -a >> $PPFile.info.txt 2>&1`;
- `$Compiler -v >> $PPFile.info.txt 2>&1`;
+ `"$Compiler" -v >> $PPFile.info.txt 2>&1`;
rename($ofile, "$PPFile.stderr.txt");
return (basename $PPFile);
}
@@ -180,6 +180,9 @@
# Strip leading and trailing whitespace characters.
$line =~ s/^\s+|\s+$//g;
my @items = quotewords('\s+', 0, $line);
+ foreach (@items) {
+ $_ = qq/"$_"/ if (/^[^"'].*?\s+/os);
+ }
my $cmd = shift @items;
die "cannot find 'clang' in 'clang' command\n" if (!($cmd =~ /clang/));
return \@items;
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
Index: tools/scan-build/ccc-analyzer
===================================================================
--- tools/scan-build/ccc-analyzer
+++ tools/scan-build/ccc-analyzer
@@ -145,7 +145,7 @@
print OUT "@$Args\n";
close OUT;
`uname -a >> $PPFile.info.txt 2>&1`;
- `$Compiler -v >> $PPFile.info.txt 2>&1`;
+ `"$Compiler" -v >> $PPFile.info.txt 2>&1`;
rename($ofile, "$PPFile.stderr.txt");
return (basename $PPFile);
}
@@ -180,6 +180,9 @@
# Strip leading and trailing whitespace characters.
$line =~ s/^\s+|\s+$//g;
my @items = quotewords('\s+', 0, $line);
+ foreach (@items) {
+ $_ = qq/"$_"/ if (/^[^"'].*?\s+/os);
+ }
my $cmd = shift @items;
die "cannot find 'clang' in 'clang' command\n" if (!($cmd =~ /clang/));
return \@items;
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits