[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cfe-commits
Subject:    r195877 - strip UTF-8 BOM in -frewrite-includes (PR#15664)
From:       Lubos Lunak <l.lunak () suse ! cz>
Date:       2013-11-27 21:14:43
Message-ID: 20131127211443.9A0812A6C029 () llvm ! org
[Download RAW message or body]

Author: llunak
Date: Wed Nov 27 15:14:43 2013
New Revision: 195877

URL: http://llvm.org/viewvc/llvm-project?rev=195877&view=rev
Log:
strip UTF-8 BOM in -frewrite-includes (PR#15664)


Added:
    cfe/trunk/test/Frontend/Inputs/rewrite-includes-bom.h
    cfe/trunk/test/Frontend/rewrite-includes-bom.c
Modified:
    cfe/trunk/lib/Rewrite/Frontend/InclusionRewriter.cpp

Modified: cfe/trunk/lib/Rewrite/Frontend/InclusionRewriter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Rewrite/Frontend/InclusionRewriter.cpp?rev=195877&r1=195876&r2=195877&view=diff
 ==============================================================================
--- cfe/trunk/lib/Rewrite/Frontend/InclusionRewriter.cpp (original)
+++ cfe/trunk/lib/Rewrite/Frontend/InclusionRewriter.cpp Wed Nov 27 15:14:43 2013
@@ -367,6 +367,11 @@ bool InclusionRewriter::Process(FileID F
   unsigned NextToWrite = 0;
   int Line = 1; // The current input file line number.
 
+  // Ignore UTF-8 BOM, otherwise it'd end up somewhere else than the start
+  // of the resulting file.
+  if (FromFile.getBuffer().startswith("\xEF\xBB\xBF"))
+    NextToWrite = 3;
+
   Token RawToken;
   RawLex.LexFromRawLexer(RawToken);
 

Added: cfe/trunk/test/Frontend/Inputs/rewrite-includes-bom.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/Inputs/rewrite-includes-bom.h?rev=195877&view=auto
 ==============================================================================
--- cfe/trunk/test/Frontend/Inputs/rewrite-includes-bom.h (added)
+++ cfe/trunk/test/Frontend/Inputs/rewrite-includes-bom.h Wed Nov 27 15:14:43 2013
@@ -0,0 +1 @@
+ï » ¿// This file starts with UTF-8 BOM marker.

Added: cfe/trunk/test/Frontend/rewrite-includes-bom.c
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Frontend/rewrite-includes-bom.c?rev=195877&view=auto
 ==============================================================================
--- cfe/trunk/test/Frontend/rewrite-includes-bom.c (added)
+++ cfe/trunk/test/Frontend/rewrite-includes-bom.c Wed Nov 27 15:14:43 2013
@@ -0,0 +1,4 @@
+// RUN: %clang -E -frewrite-includes -I %S/Inputs %s -o - | %clang -fsyntax-only \
-Xclang -verify -x c - +// expected-no-diagnostics
+
+#include "rewrite-includes-bom.h"


_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic