From: Ted Kremenek Date: Fri, 17 Sep 2010 00:41:18 +0000 (+0000) Subject: Handle '#line' in '-E' that has an empty file name. Fixes . X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2346513da49f0a3e4f0deaf198e708d18390b41e;p=clang Handle '#line' in '-E' that has an empty file name. Fixes . git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114142 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/PrintPreprocessedOutput.cpp b/lib/Frontend/PrintPreprocessedOutput.cpp index d0aef2918c..00ab3c3176 100644 --- a/lib/Frontend/PrintPreprocessedOutput.cpp +++ b/lib/Frontend/PrintPreprocessedOutput.cpp @@ -164,11 +164,11 @@ void PrintPPOutputPPCallbacks::WriteLineInfo(unsigned LineNo, // Emit #line directives or GNU line markers depending on what mode we're in. if (UseLineDirective) { OS << "#line" << ' ' << LineNo << ' ' << '"'; - OS.write(&CurFilename[0], CurFilename.size()); + OS.write(CurFilename.data(), CurFilename.size()); OS << '"'; } else { OS << '#' << ' ' << LineNo << ' ' << '"'; - OS.write(&CurFilename[0], CurFilename.size()); + OS.write(CurFilename.data(), CurFilename.size()); OS << '"'; if (ExtraLen) diff --git a/test/Preprocessor/print_line_empty_file.c b/test/Preprocessor/print_line_empty_file.c new file mode 100644 index 0000000000..333896ee43 --- /dev/null +++ b/test/Preprocessor/print_line_empty_file.c @@ -0,0 +1,12 @@ +// RUN: %clang -E %s | FileCheck %s + +#line 21 "" +int foo() { return 42; } + +#line 4 "bug.c" +int bar() { return 21; } + +// CHECK: # 21 "" +// CHECK: int foo() { return 42; } +// CHECK: # 4 "bug.c" +// CHECK: int bar() { return 21; }