From: Fariborz Jahanian Date: Wed, 31 Oct 2007 23:08:24 +0000 (+0000) Subject: Fixed a bug exposed by fixing the assert in previous patch (one of the tests asserted). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=212b768a4b39479bc8cce1268a95a1adbd825542;p=clang Fixed a bug exposed by fixing the assert in previous patch (one of the tests asserted). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43586 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/Driver/RewriteTest.cpp b/Driver/RewriteTest.cpp index 4e01dedcb5..257a060ba9 100644 --- a/Driver/RewriteTest.cpp +++ b/Driver/RewriteTest.cpp @@ -544,6 +544,9 @@ void RewriteTest::SynthesizeObjcInternalStruct(ObjcInterfaceDecl *CDecl, std::string &Result) { assert(CDecl && "Class missing in SynthesizeObjcInternalStruct"); assert(CDecl->getName() && "Name missing in SynthesizeObjcInternalStruct"); + // Do not synthesize more than once. + if (ObjcSynthesizedStructs.count(CDecl)) + return; ObjcInterfaceDecl *RCDecl = CDecl->getSuperClass(); if (RCDecl && !ObjcSynthesizedStructs.count(RCDecl)) { // Do it for the root