diff options
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | 5 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index 73fb629874..994ef13fb7 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java @@ -1327,6 +1327,11 @@ public final class RuleContext extends TargetContext return TargetUtils.isTestRule(getTarget()); } + /** Returns true if the testonly attribute is set on this context. */ + public boolean isTestOnlyTarget() { + return attributes().has("testonly", Type.BOOLEAN) && attributes().get("testonly", Type.BOOLEAN); + } + /** * @return true if {@code rule} is visible from {@code prerequisite}. * diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java index 731ac97e16..200bd3a7ae 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java @@ -765,7 +765,7 @@ public class CppLinkActionBuilder { // optimizations applied to the associated main binaries anyway. boolean allowLtoIndexing = linkStaticness == LinkStaticness.DYNAMIC - || !ruleContext.isTestTarget() + || !(ruleContext.isTestTarget() || ruleContext.isTestOnlyTarget()) || !featureConfiguration.isEnabled( CppRuleClasses.THIN_LTO_LINKSTATIC_TESTS_USE_SHARED_NONLTO_BACKENDS); |