diff --git a/cc/arm_device.go b/cc/arm_device.go
index ce8a1cb..8f3485e 100644
--- a/cc/arm_device.go
+++ b/cc/arm_device.go
@@ -172,6 +172,10 @@
 	pctx.StaticVariable("armClangLdflags", strings.Join(clangFilterUnknownCflags(armLdflags), " "))
 	pctx.StaticVariable("armClangCppflags", strings.Join(clangFilterUnknownCflags(armCppflags), " "))
 
+	// Clang ARM vs. Thumb instruction set cflags
+	pctx.StaticVariable("armClangArmCflags", strings.Join(clangFilterUnknownCflags(armArmCflags), " "))
+	pctx.StaticVariable("armClangThumbCflags", strings.Join(clangFilterUnknownCflags(armThumbCflags), " "))
+
 	// Clang cpu variant cflags
 	pctx.StaticVariable("armClangArmv5TECflags",
 		strings.Join(armClangArchVariantCflags["armv5te"], " "))
@@ -291,6 +295,17 @@
 	return t.ldflags
 }
 
+func (t *toolchainArm) ClangInstructionSetFlags(isa string) (string, error) {
+	switch isa {
+	case "arm":
+		return "${armClangArmCflags}", nil
+	case "thumb", "":
+		return "${armClangThumbCflags}", nil
+	default:
+		return t.toolchainBase.ClangInstructionSetFlags(isa)
+	}
+}
+
 func armToolchainFactory(archVariant string, cpuVariant string) Toolchain {
 	var fixCortexA8 string
 	switch cpuVariant {
diff --git a/cc/cc.go b/cc/cc.go
index 2278ec0..c4e1d0e 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -488,15 +488,6 @@
 		}...)
 	}
 
-	instructionSet := c.Properties.Instruction_set
-	instructionSetFlags, err := toolchain.InstructionSetFlags(instructionSet)
-	if err != nil {
-		ctx.ModuleErrorf("%s", err)
-	}
-
-	// TODO: debug
-	flags.CFlags = append(flags.CFlags, c.Properties.Release.Cflags...)
-
 	if !ctx.ContainsProperty("clang") {
 		if ctx.Host() {
 			flags.Clang = true
@@ -507,6 +498,18 @@
 		}
 	}
 
+	instructionSet := c.Properties.Instruction_set
+	instructionSetFlags, err := toolchain.InstructionSetFlags(instructionSet)
+	if flags.Clang {
+		instructionSetFlags, err = toolchain.ClangInstructionSetFlags(instructionSet)
+	}
+	if err != nil {
+		ctx.ModuleErrorf("%s", err)
+	}
+
+	// TODO: debug
+	flags.CFlags = append(flags.CFlags, c.Properties.Release.Cflags...)
+
 	if flags.Clang {
 		flags.CFlags = clangFilterUnknownCflags(flags.CFlags)
 		flags.CFlags = append(flags.CFlags, c.Properties.Clang_cflags...)
diff --git a/cc/toolchain.go b/cc/toolchain.go
index d188845..e17e345 100644
--- a/cc/toolchain.go
+++ b/cc/toolchain.go
@@ -49,6 +49,7 @@
 	ClangCflags() string
 	ClangCppflags() string
 	ClangLdflags() string
+	ClangInstructionSetFlags(string) (string, error)
 
 	Is64Bit() bool
 }
@@ -63,6 +64,13 @@
 	return "", nil
 }
 
+func (toolchainBase) ClangInstructionSetFlags(s string) (string, error) {
+	if s != "" {
+		return "", fmt.Errorf("instruction_set: %s is not a supported instruction set", s)
+	}
+	return "", nil
+}
+
 type toolchain64Bit struct {
 	toolchainBase
 }
