[llvm] r263379 - Fixed DIBuilder to verify that same imported entity will not be added twice to the "imports" list of the DICompileUnit.

Aboud, Amjad via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 14 05:36:26 PDT 2016


Thanks David for taking care of this one.

From: David Blaikie [mailto:dblaikie at gmail.com]
Sent: Monday, March 14, 2016 00:38
To: Mehdi Amini <mehdi.amini at apple.com>
Cc: Aboud, Amjad <amjad.aboud at intel.com>; llvm-commits <llvm-commits at lists.llvm.org>
Subject: Re: [llvm] r263379 - Fixed DIBuilder to verify that same imported entity will not be added twice to the "imports" list of the DICompileUnit.

Done in r 263396

On Sun, Mar 13, 2016 at 2:48 PM, Mehdi Amini via llvm-commits <llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>> wrote:
Hi Amjad,

> On Mar 13, 2016, at 4:11 AM, Amjad Aboud via llvm-commits <llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>> wrote:
>
> Author: aaboud
> Date: Sun Mar 13 06:11:39 2016
> New Revision: 263379
>
> URL: http://llvm.org/viewvc/llvm-project?rev=263379&view=rev
> Log:
> Fixed DIBuilder to verify that same imported entity will not be added twice to the "imports" list of the DICompileUnit.
>
> Differential Revision: http://reviews.llvm.org/D17884
>
> Modified:
>    llvm/trunk/lib/IR/DIBuilder.cpp
>    llvm/trunk/unittests/IR/IRBuilderTest.cpp
>
> Modified: llvm/trunk/lib/IR/DIBuilder.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DIBuilder.cpp?rev=263379&r1=263378&r2=263379&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/DIBuilder.cpp (original)
> +++ llvm/trunk/lib/IR/DIBuilder.cpp Sun Mar 13 06:11:39 2016
> @@ -19,6 +19,7 @@
> #include "llvm/IR/Module.h"
> #include "llvm/Support/Debug.h"
> #include "llvm/Support/Dwarf.h"
> +#include "LLVMContextImpl.h"
>
> using namespace llvm;
> using namespace llvm::dwarf;
> @@ -168,8 +169,12 @@ static DIImportedEntity *
> createImportedModule(LLVMContext &C, dwarf::Tag Tag, DIScope *Context,
>                      Metadata *NS, unsigned Line, StringRef Name,
>                      SmallVectorImpl<TrackingMDNodeRef> &AllImportedModules) {
> +  unsigned EntitiesCount = C.pImpl->DIImportedEntitys.size();
>   auto *M = DIImportedEntity::get(C, Tag, Context, DINodeRef(NS), Line, Name);
> -  AllImportedModules.emplace_back(M);
> +  if (EntitiesCount < C.pImpl->DIImportedEntitys.size())
> +    // A new Imported Entity was just added to the context.
> +    // Add it to the Imported Modules list.
> +    AllImportedModules.emplace_back(M);
>   return M;
> }
>
>
> Modified: llvm/trunk/unittests/IR/IRBuilderTest.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/IRBuilderTest.cpp?rev=263379&r1=263378&r2=263379&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/IR/IRBuilderTest.cpp (original)
> +++ llvm/trunk/unittests/IR/IRBuilderTest.cpp Sun Mar 13 06:11:39 2016
> @@ -418,4 +418,19 @@ TEST_F(IRBuilderTest, DebugLoc) {
>
>   DIB.finalize();
> }
> +
> +TEST_F(IRBuilderTest, DIImportedEntity) {
> +  IRBuilder<> Builder(BB);
> +  DIBuilder DIB(*M);
> +  auto File = DIB.createFile("F.CBL", "/");
> +  auto CU = DIB.createCompileUnit(dwarf::DW_LANG_Cobol74, "F.CBL", "/",
> +    "llvm-cobol74", true, "", 0);
> +  auto IE1 = DIB.createImportedDeclaration(CU, nullptr, 1);
> +  auto IE2 = DIB.createImportedDeclaration(CU, nullptr, 1);
> +  auto IE3 = DIB.createImportedModule(CU, (DIImportedEntity*)nullptr, 2);
> +  auto IE4 = DIB.createImportedModule(CU, (DIImportedEntity*)nullptr, 2);

This triggers many warnings for unused variables, can you fix it please?

Thanks,

Mehdi



> +  DIB.finalize();
> +  EXPECT_TRUE(verifyModule(*M));
> +  EXPECT_TRUE(CU->getImportedEntities().size() == 2);
> +}
> }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

_______________________________________________
llvm-commits mailing list
llvm-commits at lists.llvm.org<mailto:llvm-commits at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160314/8374b487/attachment.html>


More information about the llvm-commits mailing list