From 9c1011c090de1a45950478875305c2349c8a2c14 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Mon, 19 Nov 2007 00:25:30 +0000 Subject: [PATCH] Put back the flags field in the constant CF string type. llvm-svn: 44222 --- clang/AST/ASTContext.cpp | 12 +++++++----- clang/test/CodeGen/cfstring.c | 6 ++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 clang/test/CodeGen/cfstring.c diff --git a/clang/AST/ASTContext.cpp b/clang/AST/ASTContext.cpp index 9d597bcc4306..740d6e56fab6 100644 --- a/clang/AST/ASTContext.cpp +++ b/clang/AST/ASTContext.cpp @@ -870,18 +870,20 @@ QualType ASTContext::getCFConstantStringType() { CFConstantStringTypeDecl = new RecordDecl(Decl::Struct, SourceLocation(), &Idents.get("NSConstantString"), 0); - QualType FieldTypes[3]; + QualType FieldTypes[4]; // const int *isa; FieldTypes[0] = getPointerType(IntTy.getQualifiedType(QualType::Const)); + // int flags; + FieldTypes[1] = IntTy; // const char *str; - FieldTypes[1] = getPointerType(CharTy.getQualifiedType(QualType::Const)); + FieldTypes[2] = getPointerType(CharTy.getQualifiedType(QualType::Const)); // long length; - FieldTypes[2] = LongTy; + FieldTypes[3] = LongTy; // Create fields - FieldDecl *FieldDecls[3]; + FieldDecl *FieldDecls[4]; - for (unsigned i = 0; i < 3; ++i) + for (unsigned i = 0; i < 4; ++i) FieldDecls[i] = new FieldDecl(SourceLocation(), 0, FieldTypes[i]); CFConstantStringTypeDecl->defineBody(FieldDecls, 4); diff --git a/clang/test/CodeGen/cfstring.c b/clang/test/CodeGen/cfstring.c new file mode 100644 index 000000000000..c7df1b303397 --- /dev/null +++ b/clang/test/CodeGen/cfstring.c @@ -0,0 +1,6 @@ +// RUN: clang -emit-llvm %s +#define CFSTR __builtin___CFStringMakeConstantString + +void f() { + CFSTR("Hello, World!"); +} \ No newline at end of file -- GitLab