From 808baaf232537aea9adcfac2931a493def5b7a30 Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Fri, 16 Nov 2012 22:31:39 +0000 Subject: [PATCH] [driver] Add the missing TY_PP_ObjCXX_Alias case to the isCXX function. This was causing different behavior when using -x objective-c++-cpp-output as compared to -x objc++-cpp-output. Specifically, the driver was not adding the -fcxx-exceptions flag in the latter case. rdar://12680312 llvm-svn: 168212 --- clang/lib/Driver/Types.cpp | 2 +- clang/test/Driver/objc++-cpp-output.mm | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index 862025e..7906ac3 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -113,7 +113,7 @@ bool types::isCXX(ID Id) { return false; case TY_CXX: case TY_PP_CXX: - case TY_ObjCXX: case TY_PP_ObjCXX: + case TY_ObjCXX: case TY_PP_ObjCXX: case TY_PP_ObjCXX_Alias: case TY_CXXHeader: case TY_PP_CXXHeader: case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: case TY_CUDA: diff --git a/clang/test/Driver/objc++-cpp-output.mm b/clang/test/Driver/objc++-cpp-output.mm index 9c4d553..63b15d8 100644 --- a/clang/test/Driver/objc++-cpp-output.mm +++ b/clang/test/Driver/objc++-cpp-output.mm @@ -1,4 +1,5 @@ // RUN: %clang -x objc++-cpp-output -c %s -o /dev/null +// RUN: %clang -x objc++-cpp-output -c %s -o /dev/null -### 2>&1 | FileCheck %s // PR13820 // REQUIRES: LP64 @@ -9,3 +10,8 @@ @end void f() {} class C {}; + +// Make sure the driver is passing all the necessary exception flags. +// CHECK: "-fobjc-exceptions" +// CHECK: "-fcxx-exceptions" +// CHECK: "-fexceptions" -- 2.7.4