The Samba-Bugzilla – Attachment 8533 Details for
Bug 9636
pidl can't parse new linemarkers in preprocessor output
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
v4-0-test patch
0001-PIDL-fix-parsing-linemarkers-in-preprocessor-output.patch (text/plain), 2.09 KB, created by
Andreas Schneider
on 2013-02-06 13:05:59 UTC
(
hide
)
Description:
v4-0-test patch
Filename:
MIME Type:
Creator:
Andreas Schneider
Created:
2013-02-06 13:05:59 UTC
Size:
2.09 KB
patch
obsolete
>From 1ac743a7d0d20e16fc325749d593edaaed89d706 Mon Sep 17 00:00:00 2001 >From: Alexander Bokovoy <ab@samba.org> >Date: Wed, 6 Feb 2013 10:17:57 +0200 >Subject: [PATCH] PIDL: fix parsing linemarkers in preprocessor output > >When PIDL calls out to C preprocessor to expand IDL files >and parse the output, it filters out linemarkers and line control >information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html >and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control > >With gcc 4.8 stdc-predef.h is included automatically and linemarker for the >file has extended flags that PIDL couldn't parse ('system header that needs to >be extern "C" protected for C++') > >Thanks to Jakub Jelinek <jakub@redhat.com> for explanation of the linemarker format. > >Fixes https://bugzilla.redhat.com/show_bug.cgi?id=906517 > >Reviewed-by: Andreas Schneider <asn@samba.org> >(cherry picked from commit 6ba7ab5c14801aecae96373d5a9db7ab82957526) > >Signed-off-by: Andreas Schneider <asn@samba.org> >--- > pidl/idl.yp | 4 +++- > pidl/lib/Parse/Pidl/IDL.pm | 4 +++- > 2 files changed, 6 insertions(+), 2 deletions(-) > >diff --git a/pidl/idl.yp b/pidl/idl.yp >index b5c5185..c8a65f6 100644 >--- a/pidl/idl.yp >+++ b/pidl/idl.yp >@@ -610,7 +610,9 @@ again: > > for ($parser->YYData->{INPUT}) { > if (/^\#/) { >- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) { >+ # Linemarker format is described at >+ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html >+ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) { > $parser->YYData->{LINE} = $1-1; > $parser->YYData->{FILE} = $2; > goto again; >diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm >index d4820ff..6927c89 100644 >--- a/pidl/lib/Parse/Pidl/IDL.pm >+++ b/pidl/lib/Parse/Pidl/IDL.pm >@@ -2576,7 +2576,9 @@ again: > > for ($parser->YYData->{INPUT}) { > if (/^\#/) { >- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) { >+ # Linemarker format is described at >+ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html >+ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) { > $parser->YYData->{LINE} = $1-1; > $parser->YYData->{FILE} = $2; > goto again; >-- >1.8.1.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
ab
:
review+
Actions:
View
Attachments on
bug 9636
: 8533 |
9020