From ee1b2e7ded12ef6e11ce35bb9929490ac9e7fa4f Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Thu, 27 Feb 2020 09:04:56 -0600 Subject: [PATCH] [Hexagon] Do not use init_arrays by default --- clang/lib/Driver/ToolChains/Hexagon.cpp | 7 +++++++ clang/test/Driver/hexagon-toolchain-elf.c | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/clang/lib/Driver/ToolChains/Hexagon.cpp b/clang/lib/Driver/ToolChains/Hexagon.cpp index 25e9f1b..88523cd 100644 --- a/clang/lib/Driver/ToolChains/Hexagon.cpp +++ b/clang/lib/Driver/ToolChains/Hexagon.cpp @@ -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"); diff --git a/clang/test/Driver/hexagon-toolchain-elf.c b/clang/test/Driver/hexagon-toolchain-elf.c index a0bf8ca..0a6c864 100644 --- a/clang/test/Driver/hexagon-toolchain-elf.c +++ b/clang/test/Driver/hexagon-toolchain-elf.c @@ -588,3 +588,12 @@ // 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" -- 2.7.4