зеркало из https://github.com/microsoft/clang.git
Use Text::ParseWords to make 'clang -###' parsing more robust.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71504 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
31ed552f8f
Коммит
1df35e310d
|
@ -18,6 +18,7 @@ use Cwd qw/ getcwd abs_path /;
|
||||||
use File::Temp qw/ tempfile /;
|
use File::Temp qw/ tempfile /;
|
||||||
use File::Path qw / mkpath /;
|
use File::Path qw / mkpath /;
|
||||||
use File::Basename;
|
use File::Basename;
|
||||||
|
use Text::ParseWords;
|
||||||
|
|
||||||
my $CC = $ENV{'CCC_CC'};
|
my $CC = $ENV{'CCC_CC'};
|
||||||
if (!defined $CC) { $CC = "gcc"; }
|
if (!defined $CC) { $CC = "gcc"; }
|
||||||
|
@ -115,15 +116,11 @@ sub GetCCArgs {
|
||||||
close(FROM_CHILD);
|
close(FROM_CHILD);
|
||||||
|
|
||||||
die "could not find clang-cc line\n" if (!defined $line);
|
die "could not find clang-cc line\n" if (!defined $line);
|
||||||
my @items = ($line =~ /(".*?"|\S+)/g);
|
# Strip the newline and initial whitspace
|
||||||
|
chomp $line;
|
||||||
|
$line =~ s/^\s+//;
|
||||||
|
|
||||||
for (my $i = 0; $i < scalar(@items); ++$i) {
|
my @items = quotewords('\s+', 0, $line);
|
||||||
my $x = $items[$i];
|
|
||||||
$x =~ s/^"//;
|
|
||||||
$x =~ s/"$//;
|
|
||||||
$items[$i] = $x;
|
|
||||||
}
|
|
||||||
|
|
||||||
my $cmd = shift @items;
|
my $cmd = shift @items;
|
||||||
die "cannot find 'clang-cc' in 'clang' command\n" if (!($cmd =~ /clang-cc/));
|
die "cannot find 'clang-cc' in 'clang' command\n" if (!($cmd =~ /clang-cc/));
|
||||||
return \@items;
|
return \@items;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче