Patchwork [libcpp] Fix thinko in _cpp_remaining_tokens_num_in_context (PR bootstrap/50801)

login
register
mail settings
Submitter Dodji Seketeli
Date Oct. 20, 2011, 8:01 a.m.
Message ID <m339eonlbg.fsf@redhat.com>
Download mbox | patch
Permalink /patch/120749/
State New
Headers show

Comments

Dodji Seketeli - Oct. 20, 2011, 8:01 a.m.
Hello,

The below fixes an embarrassing thinko of mine that breaks bootstrap on
SPU and PPC targets (at very least).  I am surprised it doesn't break
more code.  :-(

I have lightly tested it on SPU in a cross compiled environment (so I
couldn't bootstrap it there) and I have bootstrapped it on
x86_64-unknown-linux-gnu.  One person confirmed in the audit trail of
the PR that it fixes the issue for him on PPC, so I am proposing the
patch even if I don't know if it bootstraps on SPU or PPC in general.

OK for trunk?

From: Dodji Seketeli <dodji@redhat.com>
Date: Thu, 20 Oct 2011 09:43:49 +0200
Subject: [PATCH] Fix thinko in _cpp_remaining_tokens_num_in_context

libcpp/

	* lex.c (_cpp_remaining_tokens_num_in_context): Fix computation of
	number of tokens in "direct tokens contexts".
---
 libcpp/ChangeLog |    6 ++++++
 libcpp/lex.c     |    3 +--
 2 files changed, 7 insertions(+), 2 deletions(-)

Patch

diff --git a/libcpp/lex.c b/libcpp/lex.c
index cd6ae9f..cf8ef7d 100644
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -1710,8 +1710,7 @@  _cpp_remaining_tokens_num_in_context (cpp_reader *pfile)
 {
   cpp_context *context = pfile->context;
   if (context->tokens_kind == TOKENS_KIND_DIRECT)
-    return ((LAST (context).token - FIRST (context).token)
-	    / sizeof (cpp_token));
+    return (LAST (context).token - FIRST (context).token);
   else if (context->tokens_kind == TOKENS_KIND_INDIRECT
 	   || context->tokens_kind == TOKENS_KIND_EXTENDED)
     return ((LAST (context).ptoken - FIRST (context).ptoken)