bug-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNU Bison 3.0.4] Problem in testsuite 191


From: Akim Demaille
Subject: Re: [GNU Bison 3.0.4] Problem in testsuite 191
Date: Tue, 10 Feb 2015 11:19:07 +0100

> Le 10 févr. 2015 à 07:46, Paul Eggert <address@hidden> a écrit :
> 
> Ferdinand Thiessen wrote:
>> I use musl as libc and they use C.utf8
> 
> Yeowch.  What a pain.  As I understand it, this sort of behavior will be 
> prohibited in the next release of POSIX; see:
> 
> http://austingroupbugs.net/view.php?id=663
> 
> That being said, the Bison tests should be portable even to platforms like 
> musl, I suppose.  In the meantime you can work around the problem by using 
> some other C library.

Hi Paul, hi Ferdinand,

FWIW, the testsuite does enforce LC_ALL=C.

In the present case, I'm unsure about the suggested patch,
since it uses UTF-8, which might behave unexpected on other
platforms I guess.

So I'd rather go for something like the following patch:

commit 8b35712ae3e56e2f1094eb2afb29b0b4dacdb230
Author: Akim Demaille <address@hidden>
Date:   Tue Feb 10 11:12:56 2015 +0100

    tests: be robust to platforms that support UTF-8 even with LC_ALL=C
    
    Because musl supports UTF-8 with LC_ALL=C, gcc produces:
    
      input.y: In function ‘yyparse’:
    
    instead of:
    
      input.y: In function 'yyparse':
    
    Reported by Ferdinand Thiessen.
    http://lists.gnu.org/archive/html/bug-bison/2015-02/msg00001.html
    
    * tests/synclines.at (AT_SYNCLINES_COMPILE): Skip syncline tests when
    we can't trust error messages issued about a function body.

diff --git a/THANKS b/THANKS
index 26bea0a..32fc67f 100644
--- a/THANKS
+++ b/THANKS
@@ -48,6 +48,7 @@ Enrico Scholz             address@hidden
 Eric Blake                address@hidden
 Evgeny Stambulchik        address@hidden
 Fabrice Bauzac            address@hidden
+Ferdinand Thiessen        address@hidden
 Florian Krohm             address@hidden
 Frank Heckenbach          address@hidden
 Frans Englich             address@hidden
diff --git a/tests/synclines.at b/tests/synclines.at
index 00c2fc1..b73ddcb 100644
--- a/tests/synclines.at
+++ b/tests/synclines.at
@@ -136,12 +136,14 @@ EOF
 m4_define([AT_SYNCLINES_COMPILE],
 [# Check if we can trust location translation.
 AT_DATA([syncline.c],
-[[#error "1"
-int i; /* avoids -pedantic warning about an empty translation unit. */
+[[static void foo(void)
+{
+#error "3"
+}
 ]])
 
 _AT_SYNCLINES_COMPILE([syncline.c])
-AT_CHECK([[test "`cat stdout`" = 'syncline.c:1: @%:@error "1"' || exit 77]])
+AT_CHECK([[test "`cat stdout`" = 'syncline.c:3: @%:@error "3"' || exit 77]])
 
 # Then work for real.
 _AT_SYNCLINES_COMPILE([$1])





reply via email to

[Prev in Thread] Current Thread [Next in Thread]