Index: llvm/trunk/lib/IR/GCOV.cpp =================================================================== --- llvm/trunk/lib/IR/GCOV.cpp +++ llvm/trunk/lib/IR/GCOV.cpp @@ -589,8 +589,12 @@ /// print - Print source files with collected line count information. void FileInfo::print(raw_ostream &InfoOS, StringRef MainFilename, StringRef GCNOFile, StringRef GCDAFile) { - for (const auto &LI : LineInfo) { - StringRef Filename = LI.first(); + SmallVector Filenames; + for (const auto &LI : LineInfo) + Filenames.push_back(LI.first()); + std::sort(Filenames.begin(), Filenames.end()); + + for (StringRef Filename : Filenames) { auto AllLines = LineConsumer(Filename); std::string CoveragePath = getCoveragePath(Filename, MainFilename); @@ -603,7 +607,7 @@ CovOS << " -: 0:Runs:" << RunCount << "\n"; CovOS << " -: 0:Programs:" << ProgramCount << "\n"; - const LineData &Line = LI.second; + const LineData &Line = LineInfo[Filename]; GCOVCoverage FileCoverage(Filename); for (uint32_t LineIndex = 0; LineIndex < Line.LastLine || !AllLines.empty(); ++LineIndex) { Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_-b.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_-b.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_-b.output @@ -1,3 +1,9 @@ +File './test.h' +Lines executed:100.00% of 1 +No branches +No calls +./test.h:creating 'test.h.gcov' + File 'test.cpp' Lines executed:84.21% of 38 Branches executed:100.00% of 15 @@ -5,9 +11,3 @@ No calls test.cpp:creating 'test.cpp.gcov' -File './test.h' -Lines executed:100.00% of 1 -No branches -No calls -./test.h:creating 'test.h.gcov' - Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_-f.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_-f.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_-f.output @@ -1,3 +1,9 @@ +Function '_ZN1AC1Ev' +Lines executed:100.00% of 1 + +Function '_ZN1AC2Ev' +Lines executed:100.00% of 1 + Function '_ZN1A1BEv' Lines executed:100.00% of 1 @@ -22,17 +28,11 @@ Function 'main' Lines executed:91.67% of 24 -Function '_ZN1AC1Ev' -Lines executed:100.00% of 1 - -Function '_ZN1AC2Ev' +File './test.h' Lines executed:100.00% of 1 +./test.h:creating 'test.h.gcov' File 'test.cpp' Lines executed:84.21% of 38 test.cpp:creating 'test.cpp.gcov' -File './test.h' -Lines executed:100.00% of 1 -./test.h:creating 'test.h.gcov' - Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_long_file_names.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_long_file_names.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_long_file_names.output @@ -1,8 +1,8 @@ -File 'srcdir/./nested_dir/../test.h' -Lines executed:100.00% of 1 -srcdir/./nested_dir/../test.h:creating 'test_paths.cpp##test.h.gcov' - File 'srcdir/./nested_dir/../test.cpp' Lines executed:84.21% of 38 srcdir/./nested_dir/../test.cpp:creating 'test_paths.cpp##test.cpp.gcov' +File 'srcdir/./nested_dir/../test.h' +Lines executed:100.00% of 1 +srcdir/./nested_dir/../test.h:creating 'test_paths.cpp##test.h.gcov' + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_long_paths.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_long_paths.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_long_paths.output @@ -1,8 +1,8 @@ -File 'srcdir/./nested_dir/../test.h' -Lines executed:100.00% of 1 -srcdir/./nested_dir/../test.h:creating 'srcdir#^#test_paths.cpp##srcdir#nested_dir#^#test.h.gcov' - File 'srcdir/./nested_dir/../test.cpp' Lines executed:84.21% of 38 srcdir/./nested_dir/../test.cpp:creating 'srcdir#^#test_paths.cpp##srcdir#nested_dir#^#test.cpp.gcov' +File 'srcdir/./nested_dir/../test.h' +Lines executed:100.00% of 1 +srcdir/./nested_dir/../test.h:creating 'srcdir#^#test_paths.cpp##srcdir#nested_dir#^#test.h.gcov' + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_missing.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_missing.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_missing.output @@ -1,8 +1,8 @@ -File 'srcdir/./nested_dir/../test.h' -Lines executed:100.00% of 1 -srcdir/./nested_dir/../test.h:creating 'test.h.gcov' - File 'srcdir/./nested_dir/../test.cpp' Lines executed:84.21% of 38 srcdir/./nested_dir/../test.cpp:creating 'test.cpp.gcov' +File 'srcdir/./nested_dir/../test.h' +Lines executed:100.00% of 1 +srcdir/./nested_dir/../test.h:creating 'test.h.gcov' + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_no_gcda.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_no_gcda.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_no_gcda.output @@ -1,8 +1,8 @@ -File 'test.cpp' -Lines executed:0.00% of 38 -test.cpp:creating 'test.cpp.gcov' - File './test.h' Lines executed:0.00% of 1 ./test.h:creating 'test.h.gcov' +File 'test.cpp' +Lines executed:0.00% of 38 +test.cpp:creating 'test.cpp.gcov' + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_no_options.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_no_options.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_no_options.output @@ -1,8 +1,8 @@ -File 'test.cpp' -Lines executed:84.21% of 38 -test.cpp:creating 'test.cpp.gcov' - File './test.h' Lines executed:100.00% of 1 ./test.h:creating 'test.h.gcov' +File 'test.cpp' +Lines executed:84.21% of 38 +test.cpp:creating 'test.cpp.gcov' + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_no_output.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_no_output.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_no_output.output @@ -1,6 +1,6 @@ -File 'test.cpp' -Lines executed:84.21% of 38 - File './test.h' Lines executed:100.00% of 1 +File 'test.cpp' +Lines executed:84.21% of 38 + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output @@ -1,8 +1,8 @@ -File 'srcdir/./nested_dir/../test.h' -Lines executed:100.00% of 1 -srcdir/./nested_dir/../test.h:creating 'test.h.gcov' - File 'srcdir/./nested_dir/../test.cpp' Lines executed:84.21% of 38 srcdir/./nested_dir/../test.cpp:creating 'test.cpp.gcov' +File 'srcdir/./nested_dir/../test.h' +Lines executed:100.00% of 1 +srcdir/./nested_dir/../test.h:creating 'test.h.gcov' + Index: llvm/trunk/test/tools/llvm-cov/Inputs/test_preserve_paths.output =================================================================== --- llvm/trunk/test/tools/llvm-cov/Inputs/test_preserve_paths.output +++ llvm/trunk/test/tools/llvm-cov/Inputs/test_preserve_paths.output @@ -1,8 +1,8 @@ -File 'srcdir/./nested_dir/../test.h' -Lines executed:100.00% of 1 -srcdir/./nested_dir/../test.h:creating 'srcdir#nested_dir#^#test.h.gcov' - File 'srcdir/./nested_dir/../test.cpp' Lines executed:84.21% of 38 srcdir/./nested_dir/../test.cpp:creating 'srcdir#nested_dir#^#test.cpp.gcov' +File 'srcdir/./nested_dir/../test.h' +Lines executed:100.00% of 1 +srcdir/./nested_dir/../test.h:creating 'srcdir#nested_dir#^#test.h.gcov' +