The Samba-Bugzilla – Attachment 9020 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]
Patch with cherry-pick information for v3-6-test
0001-PIDL-fix-parsing-linemarkers-in-preprocessor-output-v3-6-test.patch (text/plain), 2.24 KB, created by
Karolin Seeger
on 2013-07-03 08:24:47 UTC
(
hide
)
Description:
Patch with cherry-pick information for v3-6-test
Filename:
MIME Type:
Creator:
Karolin Seeger
Created:
2013-07-03 08:24:47 UTC
Size:
2.24 KB
patch
obsolete
>From 3dac45bbe2609b2372023154aa70f9588f814426 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> > >Fix bug #9636 - pidl can't parse new linemarkers in preprocessor output. >(cherry picked from commit 643571470f2e4cd2f58bd60ac7189abb826d33cc) >--- > 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.7.10.4 >
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:
asn
:
review+
ab
:
review+
Actions:
View
Attachments on
bug 9636
:
8533
| 9020