ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] gcc4&multisync0.90
@ 2006-05-29 12:26 Alexey Shabalin
  2006-05-29 14:05 ` Sergey N. Yatskevich
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Shabalin @ 2006-05-29 12:26 UTC (permalink / raw)
  To: devel

День добрый
помогите собрать multisync0.90
gcc3.4 собирает, а gcc4 ругается на следующий участок.

===============================
static void msync_fs_make_config(fs_options *options, char **data, int *size)
{
        xmlDocPtr doc;

        doc = xmlNewDoc((xmlChar*)"1.0");
        doc->children = xmlNewDocNode(doc, NULL, (xmlChar*)"config", NULL);

        xmlNewChild(doc->children, NULL, (xmlChar*)"path",
(xmlChar*)options->path);
        xmlNewChild(doc->children, NULL, (xmlChar*)"recursive",
(xmlChar*)(options->recursive ? "TRUE" : "FALS

        xmlDocDumpMemory(doc, (xmlChar **)data, size);
        *size++;
}
===================================
skip
===================================
msync_fs_make_config(options, &config, &size);


file_sync.c: In function 'msync_fs_make_config':
file_sync.c:129: warning: value computed is not used

file_sync.c:129 - это   *size++;

Если убрать * - ругань исчезает. коректно ли это?



-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] gcc4&multisync0.90
  2006-05-29 12:26 [devel] gcc4&multisync0.90 Alexey Shabalin
@ 2006-05-29 14:05 ` Sergey N. Yatskevich
  2006-05-29 14:26   ` Alexey Shabalin
  0 siblings, 1 reply; 3+ messages in thread
From: Sergey N. Yatskevich @ 2006-05-29 14:05 UTC (permalink / raw)
  To: ALT Devel discussion list

В Пнд, 29/05/2006 в 16:26 +0400, Alexey Shabalin пишет:
> День добрый
> помогите собрать multisync0.90
> gcc3.4 собирает, а gcc4 ругается на следующий участок.
> 
> ===============================
> static void msync_fs_make_config(fs_options *options, char **data, int *size)
> {
>         xmlDocPtr doc;
> 
>         doc = xmlNewDoc((xmlChar*)"1.0");
>         doc->children = xmlNewDocNode(doc, NULL, (xmlChar*)"config", NULL);
> 
>         xmlNewChild(doc->children, NULL, (xmlChar*)"path",
> (xmlChar*)options->path);
>         xmlNewChild(doc->children, NULL, (xmlChar*)"recursive",
> (xmlChar*)(options->recursive ? "TRUE" : "FALS
> 
>         xmlDocDumpMemory(doc, (xmlChar **)data, size);
>         *size++;
> }
> ===================================
> skip
> ===================================
> msync_fs_make_config(options, &config, &size);
> 
> 
> file_sync.c: In function 'msync_fs_make_config':
> file_sync.c:129: warning: value computed is not used
> 
> file_sync.c:129 - это   *size++;
> 
> Если убрать * - ругань исчезает. коректно ли это?
Нет, не корректно. Всё дело в приоритете операций разыменования
указателя (*) и увеличения на единицу (++).
Если развернуть данную конструкцию (*size++), то получится
следующее:

int* tmp = size;
size = size + 1;
*tmp; // вот здесь и ругается

Судя по коду здесь просто к вычисленному xmlDocDumpMemory размеру
добавляется единица (наверное для того, чтобы учесть завершающий
'\0'), так что правильно должно быть так: (*size)++

-- 
Sergey N. Yatskevich <syatskevich@altlinux.ru>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] gcc4&multisync0.90
  2006-05-29 14:05 ` Sergey N. Yatskevich
@ 2006-05-29 14:26   ` Alexey Shabalin
  0 siblings, 0 replies; 3+ messages in thread
From: Alexey Shabalin @ 2006-05-29 14:26 UTC (permalink / raw)
  To: ALT Devel discussion list

Спасибо.
я уже опробовал
*size = *size +1; - работает


29.05.06, Sergey N. Yatskevich<syatskevich@altlinux.ru> написал(а):
> В Пнд, 29/05/2006 в 16:26 +0400, Alexey Shabalin пишет:
> > День добрый
> > помогите собрать multisync0.90
> > gcc3.4 собирает, а gcc4 ругается на следующий участок.
> >
> > ===============================
> > static void msync_fs_make_config(fs_options *options, char **data, int *size)
> > {
> >         xmlDocPtr doc;
> >
> >         doc = xmlNewDoc((xmlChar*)"1.0");
> >         doc->children = xmlNewDocNode(doc, NULL, (xmlChar*)"config", NULL);
> >
> >         xmlNewChild(doc->children, NULL, (xmlChar*)"path",
> > (xmlChar*)options->path);
> >         xmlNewChild(doc->children, NULL, (xmlChar*)"recursive",
> > (xmlChar*)(options->recursive ? "TRUE" : "FALS
> >
> >         xmlDocDumpMemory(doc, (xmlChar **)data, size);
> >         *size++;
> > }
> > ===================================
> > skip
> > ===================================
> > msync_fs_make_config(options, &config, &size);
> >
> >
> > file_sync.c: In function 'msync_fs_make_config':
> > file_sync.c:129: warning: value computed is not used
> >
> > file_sync.c:129 - это   *size++;
> >
> > Если убрать * - ругань исчезает. коректно ли это?
> Нет, не корректно. Всё дело в приоритете операций разыменования
> указателя (*) и увеличения на единицу (++).
> Если развернуть данную конструкцию (*size++), то получится
> следующее:
>
> int* tmp = size;
> size = size + 1;
> *tmp; // вот здесь и ругается
>
> Судя по коду здесь просто к вычисленному xmlDocDumpMemory размеру
> добавляется единица (наверное для того, чтобы учесть завершающий
> '\0'), так что правильно должно быть так: (*size)++
>
> --
> Sergey N. Yatskevich <syatskevich@altlinux.ru>
>
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel


-- 
Alexey Shabalin

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-05-29 14:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-29 12:26 [devel] gcc4&multisync0.90 Alexey Shabalin
2006-05-29 14:05 ` Sergey N. Yatskevich
2006-05-29 14:26   ` Alexey Shabalin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git