No, I believe the correct way is va_list ap; va_start(ap, msg); std::string str; StringAppendV(&result, format, ap); va_end(ap);
XmlReader* reader = static_cast<XmlReader*>(context); reader->errors_.append(str); Weird that there's no StringPrintV() in string_util. On Mon, Dec 7, 2009 at 3:13 PM, Antoine Labour <pi...@chromium.org> wrote: > > > On Mon, Dec 7, 2009 at 2:50 PM, SOFIA TAHSEEN <dnk...@motorola.com> wrote: >> >> Hi Antoine/Joel, >> When I try to build using the following make command I get the error as >> below...Have you seen this earlier : >> make -r -j3 BUILDTYPE=Release chrome >> (I have a dual core so used -j3) >> CXX(target) >> out/Release/obj.target/common/chrome/common/histogram_synchronizer.o >> CXX(target) >> out/Release/obj.target/common/chrome/common/important_file_writer.o >> CXX(target) >> out/Release/obj.target/common/chrome/common/jstemplate_builder.o >> CXX(target) out/Release/obj.target/common/chrome/common/libxml_utils.o >> CXX(target) out/Release/obj.target/common/chrome/common/logging_chrome.o >> cc1plus: warnings being treated as errors >> chrome/common/libxml_utils.cc: In static member function 'static void >> XmlReader::GenericErrorCallback(void*, const char*, ...)': >> chrome/common/libxml_utils.cc:38: error: cannot pass objects of non-POD >> type 'struct va_list' through '...'; call will abort at runtime >> make: *** [out/Release/obj.target/common/chrome/common/libxml_utils.o] >> Error 1 >> make: *** Waiting for unfinished jobs.... > > +chromium-dev > Sofia, I haven't seen that error. Which compiler did you end up using ? > However the code does look suspicious, passing va_list through "...": > void XmlReader::GenericErrorCallback(void* context, const char* msg, ...) { > va_list args; > va_start(args, msg); > XmlReader* reader = static_cast<XmlReader*>(context); > reader->errors_.append(StringPrintf(msg, args)); > } > Chromium C++ experts: Is that supposed to be legal, or even portable ? It > sounds like StringAppendV would be preferable here. > Antoine > > -- > Chromium Developers mailing list: chromium-dev@googlegroups.com > View archives, change email options, or unsubscribe: > http://groups.google.com/group/chromium-dev -- Chromium Developers mailing list: chromium-dev@googlegroups.com View archives, change email options, or unsubscribe: http://groups.google.com/group/chromium-dev