Fix strange %define locations for default values.

Reported by Akim Demaille at
<http://lists.gnu.org/archive/html/bug-bison/2007-12/msg00001.html>
and discussed again starting at
<http://lists.gnu.org/archive/html/bison-patches/2008-11/msg00102.html>.
* data/bison.m4 (b4_percent_define_default): Leave syncline blank
because location information is bogus.
Use angle brackets to delimit fake file name because square brackets
look like over-quoted m4.  Choose a better fake file name.
Use negative line numbers.
* src/muscle_tab.c (muscle_percent_define_default): Likewise.
* src/location.c (location_print): If line for a boundary is negative,
only print that boundary's file name.
* src/location.h: Document that.
* tests/skeletons.at (%define Boolean variables: invalid skeleton
defaults): Update output.
This commit is contained in:
Joel E. Denny
2009-04-03 03:13:36 -04:00
parent e021191bcf
commit 92822affc5
6 changed files with 68 additions and 30 deletions

View File

@@ -1,5 +1,5 @@
# Checking skeleton support. -*- Autotest -*-
# Copyright (C) 2007 Free Software Foundation, Inc.
# Copyright (C) 2007, 2009 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -159,7 +159,7 @@ start: ;
]])
AT_BISON_CHECK([[input.y]], [[1]], [[]],
[[[Bison:b4_percent_define_default]:1.0: invalid value for %define Boolean variable `foo'
[[<skeleton default value>: invalid value for %define Boolean variable `foo'
]])
AT_CLEANUP