Hi, Hi, > being it it, I'd expect a lot more format-specific warnings, not only > this one. It's only my opinion, no proof available. I just tried with > clang 10.0.0 on Linux and it doesn't claim this warning. It claims some > other, which gcc (10.1.1) does not claim about here. > > On which version of linux did you try?
What is interesting if I force it to use these defines: # define PDF_FORMAT_INT64 "lld" # define PDF_FORMAT_UINT64 "llu" # define PDF_SIZE_FORMAT "zu" Then there is no -Wformat warning on osx. But there are -Wformat warnings on linux (one with llOffset and one with llGeneration): podofo/base/PdfParser.cpp:908:54: warning: format ‘%lld’ expects argument of type ‘long long int*’, but argument 3 has type ‘PoDoFo::pdf_int64*’ {aka ‘long int*’} [-Wformat=] 908 | int read = sscanf( m_buffer.GetBuffer(), "%10" PDF_FORMAT_INT64 " %5" PDF_FORMAT_INT64 " %c%c%c", 909 | &llOffset, &llGeneration, &cUsed, &empty1, &empty2 ); Are there any problems using macro like "SCNd64" from cinttypes? Why is PdfXRefStreamParserObject deprecated when it is so essential? > > podofo/base/PdfDate.cpp:205:50: warning: ‘%s’ directive output may be > > truncated writing up to 5 bytes into a region of size between 1 and > > 26 [-Wformat-truncation=] > > 205 | snprintf( m_szDate, PDF_DATE_BUFFER_SIZE, "%s%s'00'", > > szDate, szZone ); > > This one is not claimed by clang here. > > I use the same warning flags for both compilers. > On ubuntu 20.04 it is and on gcc. Also now I see also that warning about lua (without enabled lua): podofo/src/podofo/base/PdfDate.cpp:204:50: warning: ‘%s’ directive output may be truncated writing up to 5 bytes into a region of size between 1 and 26 [-Wformat-truncation=] 204 | snprintf( m_szDate, PDF_DATE_BUFFER_SIZE, "%s%s'00'", szDate, szZone ); podofo/src/podofo/base/PdfMemStream.cpp:57:18: warning: implicitly-declared ‘PoDoFo::PdfMemStream& PoDoFo::PdfMemStream::operator=(const PoDoFo::PdfMemStream&)’ is deprecated [-Wdeprecated-copy] 57 | operator=(rhs); podofo/src/podofo/base/PdfString.cpp:787:58: warning: unused parameter ‘eConversion’ [-Wunused-parameter] 787 | EPdfStringConversion eConversion ) podofo/src/podofo/base/PdfString.cpp:825:58: warning: unused parameter ‘eConversion’ [-Wunused-parameter] 825 | EPdfStringConversion eConversion ) podofo/src/podofo/base/PdfTokenizer.cpp:440:75: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] 440 | else if( !(isdigit( static_cast<const unsigned char>(*pszStart) ) || *pszStart == '-' || *pszStart == '+' ) ) podofo/src/podofo/base/PdfTokenizer.cpp:512:73: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] 512 | static_cast<const pdf_uint16>(l) ); podofo/src/podofo/doc/PdfField.cpp:107:26: warning: implicitly-declared ‘constexpr PoDoFo::PdfField& PoDoFo::PdfField::operator=(const PoDoFo::PdfField&)’ is deprecated [-Wdeprecated-copy] 107 | this->operator=( rhs ); podofo/tools/podofocolor/podofocolor.cpp:50:89: warning: unused parameter ‘lua’ [-Wunused-parameter] 50 | static IConverter* ConverterForName( const std::string & converter, const std::string & lua ) These when I used clang (still on linux): podofo/src/podofo/base/PdfParser.cpp:946:5: warning: 'PdfXRefStreamParserObject' is deprecated [-Wdeprecated-declarations] PdfXRefStreamParserObject xrefObject( m_vecObjects, m_device, m_buffer, &m_offsets ); podofo/test/VariantTest/VariantTest.cpp:131:39: warning: illegal character encoding in string literal [-Winvalid-source-encoding] TEST_SAFE_OP( Test( "(Hallo \\(sch<F6>ne\\) Welt!)", ePdfDataType_String ) ); podofo/test/ObjectParserTest/ObjectParserTest.cpp:322:61: warning: illegal character encoding in string literal [-Winvalid-source-encoding] const char* pszSimpleObjectString2 = "5 0 obj\n(Hallo \\(sch<F6>ne\\) Welt!)\nendobj\n"; podofo/test/ObjectParserTest/ObjectParserTest.cpp:448:77: warning: illegal character encoding in string literal [-Winvalid-source-encoding] TRY_TEST(TestObject_String( pszSimpleObjectString2, 5, 0, "(Hallo \\(sch<F6>ne\\) Welt!)" );) Configuring it with cmake on osx is little harder. I need to manualy set FREETYPE_INCLUDE_DIR then: -- Performing Test PODOFO_HAVE_OPENSSL_1_1 -- Performing Test PODOFO_HAVE_OPENSSL_1_1 - Failed Due to this it will not compile: src/podofo/base/PdfEncrypt.cpp:143:24: error: field has incomplete type 'EVP_CIPHER_CTX' (aka 'evp_cipher_ctx_st') EVP_CIPHER_CTX aes; until I manually enable openssl 1.1 in podofo_config.h: #define PODOFO_HAVE_OPENSSL_1_1 Then there is this error (due to latest commit): src/podofo/base/PdfString.cpp:136:9: error: unknown type name 'constexpr' constexpr bool wchar_t_is_two_bytes = sizeof(wchar_t) == 2; I need to enable c++11. And there are many warnings -Wformat in tools and tests. Including similar warnings as on linux with clang. > Bye, > zyx > > P.S.: by the way, would you mind to reply to list instead to all when > replying (at least to my) messages here, please? I do not need to > receive private copy of the message when I get it through the list. I > also reply to the list, not to individuals, unless they explicitly ask > for it (like one time senders, whom might not be subscribed to the > list). Receiving messages through the list makes it easier to reply to > the list, in contrast to edit recipients in "private" mails when > replying. > > You are probably not using gmail. I have two options here "Reply" which would reply only to you and "Reply to all" which puts you as receiver and mailing list as CC. So then I must edit recipients if I want to reply only to list ;) > > > _______________________________________________ > Podofo-users mailing list > Podofo-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/podofo-users > >
_______________________________________________ Podofo-users mailing list Podofo-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/podofo-users