[llvm] 15d20b9 - Fix DXBC magic parsing

Chris Bieneman via llvm-commits llvm-commits at lists.llvm.org
Tue May 3 14:46:31 PDT 2022


Author: Chris Bieneman
Date: 2022-05-03T14:41:48-07:00
New Revision: 15d20b97645784008ec43865ed84bcf665fc2a50

URL: https://github.com/llvm/llvm-project/commit/15d20b97645784008ec43865ed84bcf665fc2a50
DIFF: https://github.com/llvm/llvm-project/commit/15d20b97645784008ec43865ed84bcf665fc2a50.diff

LOG: Fix DXBC magic parsing

This gets identify_magic working correctly for DXContainer files

Added: 
    

Modified: 
    llvm/lib/BinaryFormat/Magic.cpp
    llvm/unittests/Object/DXContainerTest.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/BinaryFormat/Magic.cpp b/llvm/lib/BinaryFormat/Magic.cpp
index d48adb1121fee..99d3f692889de 100644
--- a/llvm/lib/BinaryFormat/Magic.cpp
+++ b/llvm/lib/BinaryFormat/Magic.cpp
@@ -227,7 +227,7 @@ file_magic llvm::identify_magic(StringRef Magic) {
     break;
   
   case 'D': // DirectX container file - DXBC
-    if (startswith(Magic, "DXBC") && Magic.size() == 4)
+    if (startswith(Magic, "DXBC"))
       return file_magic::dxcontainer_object;
     break;
 

diff  --git a/llvm/unittests/Object/DXContainerTest.cpp b/llvm/unittests/Object/DXContainerTest.cpp
index 95bafe8da894b..1c8ef4fe2722d 100644
--- a/llvm/unittests/Object/DXContainerTest.cpp
+++ b/llvm/unittests/Object/DXContainerTest.cpp
@@ -22,8 +22,14 @@ template <std::size_t X> MemoryBufferRef getMemoryBuffer(uint8_t Data[X]) {
 }
 
 TEST(DXCFile, IdentifyMagic) {
-  StringRef Buffer("DXBC");
-  EXPECT_EQ(identify_magic(Buffer), file_magic::dxcontainer_object);
+  {
+    StringRef Buffer("DXBC");
+    EXPECT_EQ(identify_magic(Buffer), file_magic::dxcontainer_object);
+  }
+  {
+    StringRef Buffer("DXBCBlahBlahBlah");
+    EXPECT_EQ(identify_magic(Buffer), file_magic::dxcontainer_object);
+  }
 }
 
 TEST(DXCFile, ParseHeaderErrors) {


        


More information about the llvm-commits mailing list