diff options
-rw-r--r-- | llvm/lib/Remarks/BitstreamRemarkParser.cpp | 5 | ||||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/basic1.c | 2 | ||||
-rwxr-xr-x | llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.empty.x86_64 | bin | 0 -> 9296 bytes | |||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.o | bin | 0 -> 2088 bytes | |||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.opt.bitstream | 0 | ||||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.o | bin | 0 -> 2892 bytes | |||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.opt.bitstream | 0 | ||||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.o | bin | 0 -> 2624 bytes | |||
-rw-r--r-- | llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.opt.bitstream | 0 | ||||
-rw-r--r-- | llvm/test/tools/dsymutil/X86/remarks-linking-bundle-empty.test | 8 |
10 files changed, 14 insertions, 1 deletions
diff --git a/llvm/lib/Remarks/BitstreamRemarkParser.cpp b/llvm/lib/Remarks/BitstreamRemarkParser.cpp index dfad5902545..4c450887911 100644 --- a/llvm/lib/Remarks/BitstreamRemarkParser.cpp +++ b/llvm/lib/Remarks/BitstreamRemarkParser.cpp @@ -428,8 +428,13 @@ Error BitstreamRemarkParser::processExternalFilePath( MemoryBuffer::getFile(FullPath); if (std::error_code EC = BufferOrErr.getError()) return createFileError(FullPath, EC); + TmpRemarkBuffer = std::move(*BufferOrErr); + // Don't try to parse the file if it's empty. + if (TmpRemarkBuffer->getBufferSize() == 0) + return make_error<EndOfFileError>(); + // Create a separate parser used for parsing the separate file. ParserHelper = BitstreamParserHelper(TmpRemarkBuffer->getBuffer()); // Advance and check until we can parse the meta block. diff --git a/llvm/test/tools/dsymutil/Inputs/basic1.c b/llvm/test/tools/dsymutil/Inputs/basic1.c index a41edc927cb..20292069f5f 100644 --- a/llvm/test/tools/dsymutil/Inputs/basic1.c +++ b/llvm/test/tools/dsymutil/Inputs/basic1.c @@ -22,7 +22,7 @@ Remarks compilation: for FILE in basic1.c basic2.c basic3.c; do - clang -gline-tables-only -c $FILE -fsave-optimization-record=bitstream -foptimization-remarks-file=/tmp/${FILE%.c}.macho.remarks.x86_64.opt.bitstream -mllvm -remarks-section -o ${FILE%.c}.macho.remarks.x86_64.o + clang -gline-tables-only -c $FILE -fsave-optimization-record=bitstream -foptimization-record-file=/remarks/${FILE%.c}.macho.remarks.x86_64.opt.bitstream -o ${FILE%.c}.macho.remarks.x86_64.o done clang basic1.macho.remarks.x86_64.o basic2.macho.remarks.x86_64.o basic3.macho.remarks.x86_64.o -o basic.macho.remarks.x86_64 -Wl,-dead_strip diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.empty.x86_64 b/llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.empty.x86_64 Binary files differnew file mode 100755 index 00000000000..a730148ba38 --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic.macho.remarks.empty.x86_64 diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.o b/llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.o Binary files differnew file mode 100644 index 00000000000..aef4841d64c --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.o diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.opt.bitstream b/llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.opt.bitstream new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic1.macho.remarks.empty.x86_64.opt.bitstream diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.o b/llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.o Binary files differnew file mode 100644 index 00000000000..9bb1405bf9e --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.o diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.opt.bitstream b/llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.opt.bitstream new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic2.macho.remarks.empty.x86_64.opt.bitstream diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.o b/llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.o Binary files differnew file mode 100644 index 00000000000..fff0a7122fb --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.o diff --git a/llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.opt.bitstream b/llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.opt.bitstream new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/llvm/test/tools/dsymutil/Inputs/remarks/basic3.macho.remarks.empty.x86_64.opt.bitstream diff --git a/llvm/test/tools/dsymutil/X86/remarks-linking-bundle-empty.test b/llvm/test/tools/dsymutil/X86/remarks-linking-bundle-empty.test new file mode 100644 index 00000000000..12418694f14 --- /dev/null +++ b/llvm/test/tools/dsymutil/X86/remarks-linking-bundle-empty.test @@ -0,0 +1,8 @@ +RUN: rm -rf %t +RUN: mkdir -p %t +RUN: cat %p/../Inputs/remarks/basic.macho.remarks.empty.x86_64 > %t/basic.macho.remarks.empty.x86_64 + +RUN: dsymutil -oso-prepend-path=%p/../Inputs -remarks-prepend-path=%p/../Inputs %t/basic.macho.remarks.empty.x86_64 + +Check that the remark file in the bundle does not exist: +RUN: not cat %t/basic.macho.remarks.empty.x86_64.dSYM/Contents/Resources/Remarks/basic.macho.remarks.empty.x86_64 2>&1 |