List:MySQL++« Previous MessageNext Message »
From:Ovidiu Bivolaru Date:November 22 2006 11:48pm
Subject:Re: Patch to fix char signedness issue on ppc
View as plain text  
Nice patch. I have always used: CFLAGS/CXXFLAGS with -fsigned-char to 
compile on Linux/PPC.

Regards,
Ovidiu

Michael Hanselmann wrote:
> Hello
>
> On Linux/ppc, gcc uses unsigned char's by default. query.cpp constructs
> an object of SQLParseElement and gives it a value of -1 for the "char"
> parameter (n). Later this value is compared to -1, which will be 255
> when using unsigned chars. The result is a wrongly thrown exception. The
> attached patch changes the type to "short int" where the number is used.
>
> Signed-off-by: Michael Hanselmann <mysql@stripped>
>
> Greets,
> Michael
>
>   
> ------------------------------------------------------------------------
>
> diff -ru mysql++-2.1.1.orig/lib/qparms.h mysql++-2.1.1/lib/qparms.h
> --- mysql++-2.1.1.orig/lib/qparms.h	2006-04-05 06:44:49.000000000 +0200
> +++ mysql++-2.1.1/lib/qparms.h	2006-11-23 00:11:05.000000000 +0100
> @@ -232,7 +232,7 @@
>  	/// \param b the 'before' value
>  	/// \param o the 'option' value
>  	/// \param n the 'num' value
> -	SQLParseElement(std::string b, char o, char n) :
> +	SQLParseElement(std::string b, char o, short int n) :
>  	before(b),
>  	option(o),
>  	num(n)
> @@ -241,7 +241,7 @@
>  	
>  	std::string before;		///< string inserted before the parameter
>  	char option;			///< the parameter option, or blank if none
> -	char num;				///< the parameter position to use
> +	short int num;			///< the parameter position to use
>  };
>  
>  } // end namespace mysqlpp
> diff -ru mysql++-2.1.1.orig/lib/query.cpp mysql++-2.1.1/lib/query.cpp
> --- mysql++-2.1.1.orig/lib/query.cpp	2006-04-05 06:44:49.000000000 +0200
> +++ mysql++-2.1.1/lib/query.cpp	2006-11-23 00:16:04.000000000 +0100
> @@ -220,7 +220,7 @@
>  				}
>  
>  				// Finished parsing parameter; save it.
> -				parse_elems_.push_back(SQLParseElement(str, option, char(n)));
> +				parse_elems_.push_back(SQLParseElement(str, option, n));
>  				str = "";
>  				name = "";
>  			}
> @@ -304,7 +304,7 @@
>  {
>  	sbuffer_.str("");
>  
> -	char num;
> +	short int num;
>  	SQLString* ss;
>  	SQLQueryParms* c;
>  
>   

Thread
Patch to fix char signedness issue on ppcMichael Hanselmann23 Nov
  • Re: Patch to fix char signedness issue on ppcOvidiu Bivolaru23 Nov
  • Re: Patch to fix char signedness issue on ppcWarren Young28 Nov
    • Re: Patch to fix char signedness issue on ppcMichael Hanselmann28 Nov
      • Re: Patch to fix char signedness issue on ppcWarren Young20 Dec