aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkActionBuilder.java2
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);