mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-24 22:08:57 -04:00

Summary: M-class profiles do not support ARM execution mode, so providing -marm/-mno-thumb does not make sense in combination with -mcpu/-march options that support the M-profile. This is a follow-up patch to D35569 and it seemed pretty clear that we should emit an error in the driver in this case. We probably also should warn/error if the provided -mcpu/-march options do not match, e.g. -mcpu=cortex-m0 -march=armv8-a is invalid, as cortex-m0 does not support armv8-a. But that should be a separate patch I think. Reviewers: echristo, richard.barton.arm, rengolin, labrinea, charles.baylis Reviewed By: rengolin Subscribers: aemerson, javed.absar, kristof.beyls, cfe-commits Differential Revision: https://reviews.llvm.org/D35826 llvm-svn: 310047
13 lines
713 B
C
13 lines
713 B
C
// RUN: not %clang -target arm-unknown-linux -marm -mcpu=cortex-m0 %s -o /dev/null 2>&1 \
|
|
// RUN: | FileCheck --check-prefix M0 %s
|
|
// M0: error: CPU 'cortex-m0' does not support 'ARM' execution mode
|
|
|
|
// RUN: not %clang -target arm-unknown-linux -marm -march=armv7m %s -o /dev/null 2>&1 \
|
|
// RUN: | FileCheck --check-prefix ARMV7M %s
|
|
// RUN: not %clang -target armv7m-unknown-linux -mno-thumb %s -o /dev/null 2>&1 \
|
|
// RUN: | FileCheck --check-prefix ARMV7M %s
|
|
// ARMV7M: error: Architecture 'armv7m' does not support 'ARM' execution mode
|
|
//
|
|
// RUN: %clang -S -emit-llvm -target arm-unknown-linux -mcpu=cortex-m0 %s -o /dev/null 2>&1
|
|
// M-Profile CPUs default to Thumb mode even if arm triples are provided.
|