From bf21dc24f5bfa8434198ec6bd65eec202811dc57 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Fri, 15 Mar 2024 11:06:42 -0700 Subject: =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initial=20vers?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Created using spr 1.3.5-bogner --- clang/docs/ReleaseNotes.rst | 2 +- clang/lib/Driver/ToolChains/Arch/AArch64.cpp | 9 ++------- clang/test/Driver/arm-alignment.c | 24 +++--------------------- 3 files changed, 6 insertions(+), 29 deletions(-) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index e174336..a9e3be6 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -191,7 +191,7 @@ Removed Compiler Flags ------------------------- - The ``-freroll-loops`` flag has been removed. It had no effect since Clang 13. -- ``-m[no-]unaligned-access`` is removed for RISC-V and LoongArch. +- ``-m[no-]unaligned-access`` is removed for AArch64, RISC-V, and LoongArch. ``-m[no-]strict-align``, also supported by GCC, should be used instead. (`#85350 `_.) diff --git a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp index 3e6e295..cac5ab5 100644 --- a/clang/lib/Driver/ToolChains/Arch/AArch64.cpp +++ b/clang/lib/Driver/ToolChains/Arch/AArch64.cpp @@ -321,13 +321,8 @@ void aarch64::getAArch64TargetFeatures(const Driver &D, } } - if (Arg *A = Args.getLastArg( - options::OPT_mstrict_align, options::OPT_mno_strict_align, - options::OPT_mno_unaligned_access, options::OPT_munaligned_access)) { - if (A->getOption().matches(options::OPT_mstrict_align) || - A->getOption().matches(options::OPT_mno_unaligned_access)) - Features.push_back("+strict-align"); - } else if (Triple.isOSOpenBSD()) + if (Args.hasFlag(options::OPT_mstrict_align, options::OPT_mno_strict_align, + Triple.isOSOpenBSD())) Features.push_back("+strict-align"); if (Args.hasArg(options::OPT_ffixed_x1)) diff --git a/clang/test/Driver/arm-alignment.c b/clang/test/Driver/arm-alignment.c index 8c915477..f7db966 100644 --- a/clang/test/Driver/arm-alignment.c +++ b/clang/test/Driver/arm-alignment.c @@ -37,19 +37,13 @@ // RUN: %clang -target thumbv8m.base-none-gnueabi -### %s 2> %t // RUN: FileCheck --check-prefix CHECK-ALIGNED-ARM <%t %s -// RUN: %clang --target=aarch64 -munaligned-access -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s - -// RUN: %clang --target=aarch64 -mstrict-align -munaligned-access -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s - -// RUN: %clang --target=aarch64 -mno-unaligned-access -munaligned-access -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-UNALIGNED-AARCH64 < %t %s +// RUN: not %clang --target=aarch64 -munaligned-access -mno-unaligned-access -### %s 2>&1 | FileCheck %s --check-prefix=ERR +// ERR: error: unsupported option '-munaligned-access' for target 'aarch64' +// ERR: error: unsupported option '-mno-unaligned-access' for target 'aarch64' // CHECK-UNALIGNED-ARM-NOT: "-target-feature" "+strict-align" // CHECK-UNALIGNED-AARCH64-NOT: "-target-feature" "+strict-align" - // RUN: %clang -target arm-none-gnueabi -mno-unaligned-access -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s @@ -83,21 +77,9 @@ // RUN: %clang -target armv6m-netbsd-eabi -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-ARM < %t %s -// RUN: %clang --target=aarch64 -mno-unaligned-access -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s - // RUN: %clang --target=aarch64 -mstrict-align -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s -// RUN: %clang --target=aarch64 -munaligned-access -mno-unaligned-access -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s - -// RUN: %clang --target=aarch64 -munaligned-access -mstrict-align -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s - -// RUN: %clang --target=aarch64 -mkernel -mno-unaligned-access -### %s 2> %t -// RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s - // RUN: %clang -target aarch64-unknown-openbsd -### %s 2> %t // RUN: FileCheck --check-prefix=CHECK-ALIGNED-AARCH64 < %t %s -- cgit v1.1