зеркало из https://github.com/microsoft/clang.git
ccc-analyzer: Don't analyze files with '-arch ppc' or '-arch ppc64' since Clang
doesn't support Altivec intrisics nor is it likely that we're currently generating all the right #defines, etc., for those architectures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65390 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
111c2ee5fe
Коммит
8459132b03
|
@ -333,7 +333,9 @@ if (!defined $Clang) { $Clang = 'clang'; }
|
|||
# Get the HTML output directory.
|
||||
my $HtmlDir = $ENV{'CCC_ANALYZER_HTML'};
|
||||
|
||||
my %DisabledArchs = ('ppc' => 1, 'ppc64' => 1);
|
||||
my %ArchsSeen;
|
||||
my $HadArch = 0;
|
||||
|
||||
# Process the arguments.
|
||||
foreach (my $i = 0; $i < scalar(@ARGV); ++$i) {
|
||||
|
@ -348,7 +350,10 @@ foreach (my $i = 0; $i < scalar(@ARGV); ++$i) {
|
|||
# Specially handle duplicate cases of -arch
|
||||
if ($Arg eq "-arch") {
|
||||
my $arch = $ARGV[$i+1];
|
||||
$ArchsSeen{$arch} = 1;
|
||||
# We don't want to process 'ppc' because of Clang's lack of support
|
||||
# for Altivec (also some #defines won't likely be defined correctly, etc.)
|
||||
if (!(defined $DisabledArchs{$arch})) { $ArchsSeen{$arch} = 1; }
|
||||
$HadArch = 1;
|
||||
++$i;
|
||||
next;
|
||||
}
|
||||
|
@ -476,6 +481,10 @@ foreach (my $i = 0; $i < scalar(@ARGV); ++$i) {
|
|||
}
|
||||
|
||||
if ($Action eq 'compile' or $Action eq 'link') {
|
||||
my @Archs = keys %ArchsSeen;
|
||||
# Skip the file if we don't support the architectures specified.
|
||||
exit 0 if ($HadArch && scalar(@Archs) > 0);
|
||||
|
||||
foreach my $file (@Files) {
|
||||
# Determine the language for the file.
|
||||
my $FileLang = $Lang;
|
||||
|
@ -518,7 +527,6 @@ if ($Action eq 'compile' or $Action eq 'link') {
|
|||
push @AnalyzeArgs,@CompileOpts;
|
||||
push @AnalyzeArgs,$file;
|
||||
|
||||
my @Archs = keys %ArchsSeen;
|
||||
if (scalar @Archs) {
|
||||
foreach my $arch (@Archs) {
|
||||
my @NewArgs;
|
||||
|
|
Загрузка…
Ссылка в новой задаче