Index: lld/ELF/Writer.cpp =================================================================== --- lld/ELF/Writer.cpp +++ lld/ELF/Writer.cpp @@ -1661,7 +1661,9 @@ if (OS->Flags & SHF_EXECINSTR) for (InputSection *IS : getInputSections(OS)) if (!(IS->Flags & SHF_EXECINSTR)) - error("-execute-only does not support intermingling data and code"); + error( + "cannot place " + toString(IS) + " into " + toString(OS->Name) + + ": -execute-only does not support intermingling data and code"); // Prefer command line supplied address over other constraints. for (OutputSection *Sec : OutputSections) { Index: lld/test/ELF/execute-only-mixed-data.s =================================================================== --- lld/test/ELF/execute-only-mixed-data.s +++ lld/test/ELF/execute-only-mixed-data.s @@ -16,7 +16,7 @@ // RUN: }" > %t.lds // RUN: ld.lld -T%t.lds %t.o -o %t -execute-only 2>&1 -// CHECK: -execute-only does not support intermingling data and code +// CHECK: cannot place {{.*}}:(.rodata.foo) into .text: -execute-only does not support intermingling data and code br lr