From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 15 Mar 2002 11:45:19 +0300 From: Mikhail Zabaluev To: sisyphus@altlinux.ru Message-ID: <20020315084519.GA2254@mhz.mikhail.zabaluev.name> Mail-Followup-To: Mikhail Zabaluev , sisyphus@altlinux.ru References: <3C905926.7080303@alt-linux.org> <3C905FDB.3080509@altlinux.ru> <000f01c1cb3d$0f8802e0$6600a8c0@ruis.ru> <20020314101753.GC30641@mhz.mikhail.zabaluev.name> <003801c1cb45$09ff6900$6600a8c0@ruis.ru> <20020314110832.GB32530@mhz.mikhail.zabaluev.name> <3C90AEE9.356C4D97@altlinux.ru> <3C90AD8D.8040606@diamonds.ru> <20020314221458.GC2019@mhz.mikhail.zabaluev.name> <000901c1cbe4$ccb858e0$6600a8c0@ruis.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <000901c1cbe4$ccb858e0$6600a8c0@ruis.ru> User-Agent: Mutt/1.3.27i Subject: [sisyphus] Re: FireBird 1.0 =?koi8-r?Q?=CF=D4_AltLinu?= =?koi8-r?B?eCDC1cTF1D8=?= Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: List-Unsubscribe: , List-Archive: Archived-At: List-Archive: Hello Evgeniy, On Fri, Mar 15, 2002 at 08:46:48AM +0300, Evgeniy Kobzev wrote: > > ----- Original Message ----- > From: "Mikhail Zabaluev" > To: > Sent: Friday, March 15, 2002 1:14 AM > Subject: [sisyphus] Re: FireBird 1.0 от AltLinux будет? > > > > Хм, сомнительный код... Не означаёт ли это, что ошибки загнаны под > > ковёр? Можно взглянуть на код, на котором выдаются ошибки? > > Можно. Функция в которой ругается. Это 47 строка, и далее до 110. > ===================================================================== > SSHORT MISC_build_parameters_block ( > UCHAR *buffer, > ...) > { > /************************************** > * > * M I S C _ b u i l d _ p a r a m e t e r s _ b l o c k > * > ************************************** > * > * Functional description > * Stuffs the passed buffer with various argument information coming via > * va_list. An argument type of 0 signifies the end of argument list. > * Returns the total number of bytes put (stuffed) in the passed buffer. > * > **************************************/ > va_list ptr; > UCHAR *p, *q; > SCHAR arg_type, ch; > USHORT sh; > SLONG l; > > p = buffer; > VA_START (ptr, buffer); > > /* using the argument types in the parameter list, > pop the arguments off the call stack and put > them into the passed buffer */ > > while (arg_type = va_arg (ptr, SCHAR)) // <--- misc.c:76: `SCHAR' is > promoted to `int' when passed through `...' Вот что говорит libc.info: The type of the value returned by `va_arg' is TYPE as specified in the call. TYPE must be a self-promoting type (not `char' or `short int' or `float') that matches the type of the actual argument. По смыслу, нужно использовать типы, которые получаются при "возгонке" параметров в случае, если функция не была объявлена (одна из часто ругаемых особенностей C, если помните). Так что стандарт есть стандарт, извольте соответствовать-с. Не берусь судить, правильно ли gcc 2.95.3 достаёт эти параметры из стека. -- Stay tuned, MhZ JID: mookid@jabber.org ___________ Wilner's Observation: All conversations with a potato should be conducted in private.