diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 0aac191..0806fca 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -3218,7 +3218,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
            options::OPT_fuse_cxa_atexit, options::OPT_fno_use_cxa_atexit,
            getToolChain().getTriple().getOS() != llvm::Triple::Cygwin &&
                getToolChain().getTriple().getOS() != llvm::Triple::MinGW32 &&
-               getToolChain().getArch() != llvm::Triple::hexagon) ||
+               getToolChain().getArch() != llvm::Triple::hexagon &&
+               getToolChain().getArch() != llvm::Triple::xcore) ||
       KernelOrKext)
     CmdArgs.push_back("-fno-use-cxa-atexit");
 
diff --git a/test/Driver/xcore-opts.c b/test/Driver/xcore-opts.c
index 5197da7..10d8da1 100644
--- a/test/Driver/xcore-opts.c
+++ b/test/Driver/xcore-opts.c
@@ -4,9 +4,10 @@
 // CHECK: "-momit-leaf-frame-pointer"
 // CHECK-NOT: "-mdisable-fp-elim"
 // CHECK: "-fno-signed-char"
+// CHECK: "-fno-use-cxa-atexit"
 // CHECK: "-fno-common"
 // CHECH: xcc" "-o"
 // CHECK: "-c" "-g" "A1Arg" "A2Arg"
 // CHECK: xcc" "-o"
-// CHEXK: "L1Arg" "L2Arg"
+// CHECK: "L1Arg" "L2Arg"
 
