[Hexagon] Do not use init_arrays by default
authorKrzysztof Parzyszek <kparzysz@quicinc.com>
Thu, 27 Feb 2020 15:04:56 +0000 (09:04 -0600)
committerKrzysztof Parzyszek <kparzysz@quicinc.com>
Thu, 27 Feb 2020 15:16:25 +0000 (09:16 -0600)
clang/lib/Driver/ToolChains/Hexagon.cpp
clang/test/Driver/hexagon-toolchain-elf.c

index 25e9f1b..88523cd 100644 (file)
@@ -523,6 +523,13 @@ unsigned HexagonToolChain::getOptimizationLevel(
 void HexagonToolChain::addClangTargetOptions(const ArgList &DriverArgs,
                                              ArgStringList &CC1Args,
                                              Action::OffloadKind) const {
+  bool UseInitArrayDefault = false;
+
+  if (!DriverArgs.hasFlag(options::OPT_fuse_init_array,
+                          options::OPT_fno_use_init_array,
+                          UseInitArrayDefault))
+    CC1Args.push_back("-fno-use-init-array");
+
   if (DriverArgs.hasArg(options::OPT_ffixed_r19)) {
     CC1Args.push_back("-target-feature");
     CC1Args.push_back("+reserved-r19");
index a0bf8ca..0a6c864 100644 (file)
 // RUN:   | FileCheck -check-prefix=CHECK083 %s
 // CHECK083:          "-isysroot" "/hexagon"
 // CHECK083:          "-internal-externc-isystem" "/hexagon{{/|\\\\}}include"
+// -----------------------------------------------------------------------------
+// Passing -fno-use-init-array
+// -----------------------------------------------------------------------------
+// RUN: %clang -### -target hexagon-unknown-elf \
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin \
+// RUN:   -mcpu=hexagonv60 \
+// RUN:   %s 2>&1 \
+// RUN:   | FileCheck -check-prefix=CHECK084 %s
+// CHECK084:          "-fno-use-init-array"