diff --git a/clang/lib/Sema/Sema.cpp b/clang/lib/Sema/Sema.cpp --- a/clang/lib/Sema/Sema.cpp +++ b/clang/lib/Sema/Sema.cpp @@ -274,9 +274,12 @@ } // Create the internal type for the *StringMakeConstantString builtins. - DeclarationName ConstantString = &Context.Idents.get("__NSConstantString"); - if (IdResolver.begin(ConstantString) == IdResolver.end()) - PushOnScopeChains(Context.getCFConstantStringDecl(), TUScope); + if (getLangOpts().ObjC || + getLangOpts().CFRuntime != LangOptions::CoreFoundationABI::Unspecified) { + DeclarationName ConstantString = &Context.Idents.get("__NSConstantString"); + if (IdResolver.begin(ConstantString) == IdResolver.end()) + PushOnScopeChains(Context.getCFConstantStringDecl(), TUScope); + } // Initialize Microsoft "predefined C++ types". if (getLangOpts().MSVCCompat) { diff --git a/clang/test/AST/ast-dump-file-line-json.c b/clang/test/AST/ast-dump-file-line-json.c --- a/clang/test/AST/ast-dump-file-line-json.c +++ b/clang/test/AST/ast-dump-file-line-json.c @@ -75,34 +75,6 @@ // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__NSConstantString", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "__builtin_ms_va_list", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "char *" diff --git a/clang/test/AST/ast-dump-record-definition-data-json.cpp b/clang/test/AST/ast-dump-record-definition-data-json.cpp --- a/clang/test/AST/ast-dump-record-definition-data-json.cpp +++ b/clang/test/AST/ast-dump-record-definition-data-json.cpp @@ -128,11 +128,6 @@ // using --filters=CXXRecordDecl -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } - - // CHECK: "kind": "CXXRecordDecl", // CHECK-NEXT: "name": "__va_list_tag" // CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-records-json.cpp b/clang/test/AST/ast-dump-records-json.cpp --- a/clang/test/AST/ast-dump-records-json.cpp +++ b/clang/test/AST/ast-dump-records-json.cpp @@ -88,11 +88,6 @@ // using --filters=CXXRecordDecl -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } - - // CHECK: "kind": "CXXRecordDecl", // CHECK-NEXT: "name": "__va_list_tag" // CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-template-decls-json.cpp b/clang/test/AST/ast-dump-template-decls-json.cpp --- a/clang/test/AST/ast-dump-template-decls-json.cpp +++ b/clang/test/AST/ast-dump-template-decls-json.cpp @@ -120,34 +120,6 @@ // CHECK-NEXT: "end": {} // CHECK-NEXT: }, // CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__NSConstantString", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, // CHECK-NEXT: "name": "__builtin_ms_va_list", // CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "char *" diff --git a/clang/test/CodeGen/cf-runtime-abi.c b/clang/test/CodeGen/cf-runtime-abi.c --- a/clang/test/CodeGen/cf-runtime-abi.c +++ b/clang/test/CodeGen/cf-runtime-abi.c @@ -1,7 +1,3 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx -S -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-OBJC -// RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -S -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-OBJC-LLP64 -// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -S -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-OBJC - // RUN: %clang_cc1 -triple x86_64-apple-macosx -fcf-runtime-abi=objc -S -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-OBJC // RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -fcf-runtime-abi=objc -S -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-OBJC-LLP64 // RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -fcf-runtime-abi=objc -S -emit-llvm -o - %s | FileCheck %s -check-prefix CHECK-OBJC