diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -6365,11 +6365,10 @@ if (Args.hasFlag(options::OPT_faddrsig, options::OPT_fno_addrsig, (TC.getTriple().isOSBinFormatELF() || TC.getTriple().isOSBinFormatCOFF()) && - !TC.getTriple().isPS4() && - !TC.getTriple().isOSNetBSD() && - !Distro(D.getVFS(), TC.getTriple()).IsGentoo() && - !TC.getTriple().isAndroid() && - TC.useIntegratedAs())) + !TC.getTriple().isPS4() && !TC.getTriple().isVE() && + !TC.getTriple().isOSNetBSD() && + !Distro(D.getVFS(), TC.getTriple()).IsGentoo() && + !TC.getTriple().isAndroid() && TC.useIntegratedAs())) CmdArgs.push_back("-faddrsig"); if (Arg *A = Args.getLastArg(options::OPT_fsymbol_partition_EQ)) { diff --git a/clang/test/Driver/ve-toolchain.c b/clang/test/Driver/ve-toolchain.c --- a/clang/test/Driver/ve-toolchain.c +++ b/clang/test/Driver/ve-toolchain.c @@ -60,6 +60,23 @@ // NOTINITARRAY: clang{{.*}} "-cc1" // NOTINITARRAY: "-fno-use-init-array" +///----------------------------------------------------------------------------- +/// Checking -faddrsig + +// RUN: %clang -### -target ve %s 2>&1 | FileCheck -check-prefix=DEFADDESIG %s +// DEFADDESIG: clang{{.*}} "-cc1" +// DEFADDESIG-NOT: "-faddrsig" + +// RUN: %clang -### -target ve %s -faddrsig 2>&1 | \ +// RUN: FileCheck -check-prefix=ADDRSIG %s +// ADDRSIG: clang{{.*}} "-cc1" +// ADDRSIG: "-faddrsig" + +// RUN: %clang -### -target ve %s -fno-addrsig 2>&1 | \ +// RUN: FileCheck -check-prefix=NOADDRSIG %s +// NOADDRSIG: clang{{.*}} "-cc1" +// NOADDRSIG-NOT: "-faddrsig" + ///----------------------------------------------------------------------------- /// Checking exceptions