Add comparison operators for C++ location classes. Discussed at

<http://lists.gnu.org/archive/html/bison-patches/2006-06/msg00092.html>.
* data/c++.m4 (b4_define_location_comparison): New boolean %define
declaration indicating whether filename_type has an operator==.  If
filename_type is `std::string', it defaults to `1', `0' otherwise.
* data/location.cc: Iff b4_define_location_comparison is `1', add
operator== and operator!= for class position and for class location.

Some minor fixes.
* src/scan-action.l: Remove unused file.
* src/symtab.c (symbol_printer_set): Use printer_location not
destructor_location.
* src/symtab.h (struct symbol): Replace incorrect source comment for
printer members.
* tests/input.at (Incompatible Aliases): Update output with correct
printer location.
This commit is contained in:
Joel E. Denny
2006-06-22 19:46:05 +00:00
parent 9bc0dd679f
commit 31b2b07ef7
7 changed files with 55 additions and 869 deletions

View File

@@ -158,7 +158,7 @@ symbol_printer_set (symbol *sym, const char *printer, location loc)
if (printer)
{
if (sym->printer)
redeclaration (sym, "%printer", sym->destructor_location, loc);
redeclaration (sym, "%printer", sym->printer_location, loc);
sym->printer = printer;
sym->printer_location = loc;
}