* [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