diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-11-13 02:20:05 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-11-13 02:20:05 +0000 |
commit | cec5bc676dfc0ade1b32f3873e93a3bd2c30e390 (patch) | |
tree | 77dc031614745bb406dbd90cea9a082a1b5cdd54 /compiler_wrapper/compiler_wrapper.go | |
parent | 773bb66b7b5fab0b5f14d66455274040063e14bf (diff) | |
parent | 517424dcc11380511bc34f4a081f119104ff9e80 (diff) | |
download | toolchain-utils-android14-d1-release.tar.gz |
Snap for 9286410 from 517424dcc11380511bc34f4a081f119104ff9e80 to udc-d1-releaseandroid-14.0.0_r9android-14.0.0_r8android-14.0.0_r7android-14.0.0_r6android-14.0.0_r5android-14.0.0_r4android-14.0.0_r3android-14.0.0_r12android-14.0.0_r11android-14.0.0_r10android14-d1-s7-releaseandroid14-d1-s6-releaseandroid14-d1-s5-releaseandroid14-d1-s4-releaseandroid14-d1-s3-releaseandroid14-d1-s2-releaseandroid14-d1-s1-releaseandroid14-d1-release
Change-Id: I0dfd9fe9a88cd3daf076b0fb77b69e3138c08e6c
Diffstat (limited to 'compiler_wrapper/compiler_wrapper.go')
-rw-r--r-- | compiler_wrapper/compiler_wrapper.go | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/compiler_wrapper/compiler_wrapper.go b/compiler_wrapper/compiler_wrapper.go index 986eabab..dcaada99 100644 --- a/compiler_wrapper/compiler_wrapper.go +++ b/compiler_wrapper/compiler_wrapper.go @@ -1,4 +1,4 @@ -// Copyright 2019 The Chromium OS Authors. All rights reserved. +// Copyright 2019 The ChromiumOS Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -151,6 +151,7 @@ func callCompilerInternal(env env, cfg *config, inputCmd *command) (exitCode int } } else { cSrcFile, tidyFlags, tidyMode := processClangTidyFlags(mainBuilder) + cSrcFile, iwyuFlags, iwyuMode := processIWYUFlags(mainBuilder) if mainBuilder.target.compilerType == clangType { err := prepareClangCommand(mainBuilder) if err != nil { @@ -176,6 +177,20 @@ func callCompilerInternal(env env, cfg *config, inputCmd *command) (exitCode int return 0, err } } + + if iwyuMode != iwyuModeNone { + if iwyuMode == iwyuModeError { + panic(fmt.Sprintf("Unknown IWYU mode")) + } + + allowCCache = false + clangCmdWithoutRemoteBuildAndCCache := mainBuilder.build() + err := runIWYU(env, clangCmdWithoutRemoteBuildAndCCache, cSrcFile, iwyuFlags) + if err != nil { + return 0, err + } + } + if remoteBuildUsed, err = processRemoteBuildAndCCacheFlags(allowCCache, mainBuilder); err != nil { return 0, err } @@ -201,6 +216,12 @@ func callCompilerInternal(env env, cfg *config, inputCmd *command) (exitCode int } } + // If builds matching some heuristic should crash, crash them. Since this is purely a + // debugging tool, don't offer any nice features with it (e.g., rusage, ...). + if shouldUseCrashBuildsHeuristic && mainBuilder.target.compilerType == clangType { + return buildWithAutocrash(env, cfg, compilerCmd) + } + bisectStage := getBisectStage(env) if rusageEnabled { @@ -354,7 +375,6 @@ func calcCommonPreUserArgs(builder *commandBuilder) { builder.addPreUserArgs(builder.cfg.commonFlags...) if !builder.cfg.isHostWrapper { processLibGCCFlags(builder) - processPieFlags(builder) processThumbCodeFlags(builder) processStackProtectorFlags(builder) processX86Flags(builder) |