flags |= ELF::SHF_TLS;
break;
case 'c':
+ if (TT.getArch() != Triple::xcore)
+ return -1U;
flags |= ELF::XCORE_SHF_CP_SECTION;
break;
case 'd':
+ if (TT.getArch() != Triple::xcore)
+ return -1U;
flags |= ELF::XCORE_SHF_DP_SECTION;
break;
case 'y':
+ if (!(TT.isARM() || TT.isThumb()))
+ return -1U;
flags |= ELF::SHF_ARM_PURECODE;
break;
case 's':
+ if (TT.getArch() != Triple::hexagon)
+ return -1U;
flags |= ELF::SHF_HEX_GPREL;
break;
case 'G':
--- /dev/null
+## Some section flags are processor-specific. Reject them for other targets.
+# RUN: not llvm-mc -triple=x86_64 %s -o /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
+
+# CHECK: {{.*}}.s:[[# @LINE+1]]:34: error: unknown flag
+.section XCORE_SHF_CP_SECTION,"c",@progbits
+
+# CHECK: {{.*}}.s:[[# @LINE+1]]:34: error: unknown flag
+.section XCORE_SHF_CP_SECTION,"d",@progbits
+
+# CHECK: {{.*}}.s:[[# @LINE+1]]:27: error: unknown flag
+.section SHF_HEX_GPREL,"s",@progbits
+
+# CHECK: {{.*}}.s:[[# @LINE+1]]:30: error: unknown flag
+.section SHF_ARM_PURECODE,"y",@progbits