From 56f772e95e0268d7dc4695450e8f65c22be9fbc2 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 27 Mar 2009 07:26:24 +0100 Subject: [PATCH] lalr1.cc: avoid GCC 4.3 warnings. GCC 4.3 now warns about "a || b && c" and asks for explicit parentheses. Reported by Alexandre Duret-Lutz. * data/location.cc: Update copyright years. (Position::operator==): Use parens to make precedence explicit. Compare lines and columns first, as they are more likely to be different, and they are faster to compare. --- ChangeLog | 11 +++++++++++ data/location.cc | 15 ++++++++------- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec89f00d..619b9736 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-03-26 Akim Demaille + + lalr1.cc: avoid GCC 4.3 warnings. + GCC 4.3 now warns about "a || b && c" and asks for explicit + parentheses. + Reported by Alexandre Duret-Lutz. + * data/location.cc: Update copyright years. + (Position::operator==): Use parens to make precedence explicit. + Compare lines and columns first, as they are more likely to be + different, and they are faster to compare. + 2009-03-26 Akim Demaille gnulib: update. diff --git a/data/location.cc b/data/location.cc index 3ad89b39..0f82340c 100644 --- a/data/location.cc +++ b/data/location.cc @@ -1,7 +1,7 @@ # C++ skeleton for Bison -# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, -# Inc. +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 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 @@ -17,7 +17,7 @@ # along with this program. If not, see . m4_pushdef([b4_copyright_years], - [2002, 2003, 2004, 2005, 2006, 2007, 2008]) + [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009]) # We do want M4 expansion after # for CPP macros. m4_changecom() @@ -121,10 +121,11 @@ b4_copyright([Positions for Bison parsers in C++])[ inline bool operator== (const position& pos1, const position& pos2) { - return - (pos1.filename == pos2.filename - || pos1.filename && pos2.filename && *pos1.filename == *pos2.filename) - && pos1.line == pos2.line && pos1.column == pos2.column; + return (pos1.line == pos2.line + && pos1.column == pos2.column + && (pos1.filename == pos2.filename + || (pos1.filename && pos2.filename + && *pos1.filename == *pos2.filename))); } /// Compare two position objects. -- 2.47.2