G'day,

Some time ago (perhaps 1-2 years?), I was building the Tecgraf tools
suite (IM, CD and IUP), gathering the output into a file, and then
try to report warnings by category.

This came about because I've been in several work environments where
a warning was considered an error, and I note that Gerard Holzmann
in his "Mars code" presentation, use automated/static analysers
extensively to come up with over 3 million lines of code that worked
when the mission was deployed [there were far too many lines of code
to use traditional manual code-review/software inspection processes.]

        
https://www.usenix.org/conference/hotdep12/workshop-program/presentation/Holzmann
        https://www.youtube.com/watch?v=16dQLBgOwbE

The other thing is that compilers, especially GCC on the
GNU/Linux platforms, have steadily become more proficient at
code analysis, flow analysis, and adding warnings for constructs
that had, in some cases, lead to a defect in the code (the Apple
"goto Fail;" is the classic one here).

So, I've written a tool to take GCC output ("parse-build.lua"),
and report warnings by category.

IM has not changed much over time, but I'm posting it now anyway
as the start of a trio of postings.

cheers,

sur-behoffski (Brenton Hoff)
programmer, Grouse Software
* No diagnostics for:
   #include expects "FILENAME" or <FILENAME>
   missing binary operator before token "("
   converting to non-pointer type <TYPE> from NULL [-Wconversion-null]
   <FUNC> is deprecated [-Wdeprecated-declarations]
   <FUNC1> is deprecated: Use <FUNC2> instead [-Wdeprecated-declarations]
   assignment discards <TYPE> qualifier from pointer target type 
[-Wdiscarded-qualifiers]
   too many arguments for format [-Wformat-extra-args]
   <FUNC> may write a terminating nul past the end of the destination 
[-Wformat-overflow=]
   <DIRECTIVE> directive writing 1 byte into a region of size between 0 and 
<BYTECOUNT> [-Wformat-overflow=]
   <DIRECTIVE> directive writing <BYTECOUNT1> bytes into a region of size 
between <BYTECOUNT2> and <BYTECOUNT3> [-Wformat-overflow=]
   <DIRECTIVE> directive writing between <BYTECOUNT1> and <BYTECOUNT2> bytes 
into a region of size between <BYTECOUNT3> and <BYTECOUNT4> [-Wformat-overflow=]
   <DIRECTIVE> directive writing up to <BYTECOUNT1> bytes into a region of size 
<BYTECOUNT2> [-Wformat-overflow=]
   format not a string literal and no format arguments [-Wformat-security]
   assignment from incompatible pointer type [-Wincompatible-pointer-types]
   initialization from incompatible pointer type [-Wincompatible-pointer-types]
   passing argument <NUM> of <FUNC> from incompatible pointer type 
[-Wincompatible-pointer-types]
   <VAR> may be used uninitialized in this function [-Wmaybe-uninitialized]
   missing braces around initializer [-Wmissing-braces]
   suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
   suggest explicit braces to avoid ambiguous 'else' [-Wparentheses]
   suggest parentheses around '&&' within '||' [-Wparentheses]
   no return statement in function returning non-void [-Wreturn-type]
   control reaches end of non-void function [-Wreturn-type]
   this 'else' clause does not guard... [-Wmisleading-indentation]
   this 'for' clause does not guard... [-Wmisleading-indentation]
   this 'while' clause does not guard... [-Wmisleading-indentation]
   ignoring #pragma omp critical [-Wunknown-pragmas]
   ignoring #pragma omp for [-Wunknown-pragmas]
   ignoring #pragma omp parallel [-Wunknown-pragmas]
   ignoring #pragma omp section [-Wunknown-pragmas]
   ignoring #pragma warning  [-Wunknown-pragmas]
   dereferencing type-punned pointer will break strict-aliasing rules 
[-Wstrict-aliasing]
   enumeration value <ENUM> not handled in switch [-Wswitch]
   <EXPRESSION> is used uninitialized in this function [-Wuninitialized]
   <VAR> defined but not used [-Wunused-const-variable=]
   <FUNC> declared <TYPE> but never defined [-Wunused-function]
   label <LABEL> defined but not used [-Wunused-label]
   value computed is not used [-Wunused-value]
   unused variable <VAR> [-Wunused-variable]
   deprecated conversion from string constant to <TYPE> [-Wwrite-strings]
(End of list.)


suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]:
    lua5/imlua_process.c:55:[Function:imluaProcessSplitComplex]: 
    lua5/imlua_process.c:61:[Function:imluaProcessMergeComplex]: 
    lua5/imlua_process.c:55:[Function:imluaProcessAutoCovariance]: 
    lua5/imlua_process.c:55:[Function:imluaProcessNormalizeComponents]: 
    lua5/imlua_process.c:55:[Function:imluaProcessNormDiffRatio]: 
    lua5/imlua_process.c:55:[Function:imluaProcessSplitComplex]: 
    lua5/imlua_process.c:61:[Function:imluaProcessMergeComplex]: 
    lua5/imlua_process.c:55:[Function:imluaProcessAutoCovariance]: 
    lua5/imlua_process.c:55:[Function:imluaProcessNormalizeComponents]: 
    lua5/imlua_process.c:55:[Function:imluaProcessNormDiffRatio]: 


comparison between <ENUM1> and <ENUM2> [-Wenum-compare]:
    libexif/fuji/mnote-fuji-entry.c:233:[Function:mnote_fuji_entry_get_value]:  
 ExifTag {aka const enum <anonymous>}  MnoteFujiTag {aka enum _MnoteFujiTag}
    
libexif/olympus/mnote-olympus-entry.c:430:[Function:mnote_olympus_entry_get_value]:
   ExifTag {aka const enum <anonymous>}  MnoteOlympusTag {aka enum 
_MnoteOlympusTag}
    
libexif/olympus/mnote-olympus-entry.c:500:[Function:mnote_olympus_entry_get_value]:
   ExifTag {aka const enum <anonymous>}  MnoteOlympusTag {aka enum 
_MnoteOlympusTag}
    
libexif/pentax/mnote-pentax-entry.c:347:[Function:mnote_pentax_entry_get_value]:
   ExifTag {aka const enum <anonymous>}  MnotePentaxTag {aka enum 
_MnotePentaxTag}
    
libexif/pentax/mnote-pentax-entry.c:371:[Function:mnote_pentax_entry_get_value]:
   ExifTag {aka const enum <anonymous>}  MnotePentaxTag {aka enum 
_MnotePentaxTag}


format <FMT> expects argument of type <TYPE1>, but argument <NUM> has type 
<TYPE2> [-Wformat=]:
    libtiff/tif_predict.c:645:[Function:PredictorEncodeTile]:   %u  unsigned 
int  4  tmsize_t {aka long unsigned int}
    
libexif/fuji/exif-mnote-data-fuji.c:227:[Function:exif_mnote_data_fuji_load]:   
%u  unsigned int  5  size_t {aka long unsigned int}
    
libexif/canon/exif-mnote-data-canon.c:270:[Function:exif_mnote_data_canon_load]:
   %u  unsigned int  5  size_t {aka long unsigned int}
    
libexif/olympus/exif-mnote-data-olympus.c:485:[Function:exif_mnote_data_olympus_load]:
   %u  unsigned int  5  size_t {aka long unsigned int}
    
libexif/pentax/exif-mnote-data-pentax.c:310:[Function:exif_mnote_data_pentax_load]:
   %u  unsigned int  5  size_t {aka long unsigned int}
    libjasper/base/jas_debug.c:128:[Function:jas_memdump]:   %x  unsigned int  
3  size_t {aka long unsigned int}
    libjasper/jpc/jpc_mqenc.c:388:[Function:jpc_mqenc_dump]:   %d  int  3  long 
int
    libjasper/jpc/jpc_mqdec.c:303:[Function:jpc_mqdec_dump]:   %d  int  3  long 
int
    libjasper/jpc/jpc_mqdec.c:304:[Function:jpc_mqdec_dump]:   %d  int  3  long 
int


implicit declaration of function <FUNC> [-Wimplicit-function-declaration]:
    libjasper/jpc/jpc_qmfb.c:1618:[Function:jpc_ft_synthesize]:   
jas_do_progress


implicit declaration of function <FUNC1>; did you mean <FUNC2>? 
[-Wimplicit-function-declaration]:
    libjasper/base/jas_getopt.c:129:[Function:jas_getopt]:   jas_eprintf  
vsnprintf
    libjasper/jpc/jpc_qmfb.c:1619:[Function:jpc_ft_synthesize]:   
jas_test_abort  jas_seq_start
    libjasper/jpc/jpc_tsfb.c:124:[Function:jpc_tsfb_analyze]:   
jpc_tsfb_analyze2  jpc_tsfb_analyze
    libjasper/jpc/jpc_tsfb.c:151:[Function:jpc_tsfb_synthesize]:   
jpc_tsfb_synthesize2  jpc_tsfb_synthesize
    libjasper/jpc/jpc_t1dec.c:248:[Function:jpc_dec_decodecblk]:   jas_eprintf  
vsnprintf


cast to pointer from integer of different size [-Wint-to-pointer-cast]:
    tiff_binfile.c:74:[Function:TIFFFdOpen]: 
      tif = TIFFClientOpen(name, mode, (thandle_t) fd,  iTIFFReadProc, 
iTIFFWriteProc,
    im_format_tiff.cpp:693:[MemeberFunction:virtual void* 
imFileFormatTIFF::Handle(int)]: 
        return (void*)this->tiff->tif_fd;


<VAR> is usually a function [-Wmain]:
    libjpeg/jdmainct.c:162:[Function:alloc_funny_pointers]:   main
    libjpeg/jdmainct.c:203:[Function:make_funny_pointers]:   main
    libjpeg/jdmainct.c:243:[Function:set_wraparound_pointers]:   main
    libjpeg/jdmainct.c:272:[Function:set_bottom_pointers]:   main
    libjpeg/jdmainct.c:309:[Function:start_pass_main]:   main
    libjpeg/jdmainct.c:349:[Function:process_data_simple_main]:   main
    libjpeg/jdmainct.c:389:[Function:process_data_context_main]:   main
    libjpeg/jdmainct.c:478:[Function:jinit_d_main_controller]:   main
    libjpeg/jcmainct.c:71:[Function:start_pass_main]:   main
    libjpeg/jcmainct.c:117:[Function:process_data_simple_main]:   main
    libjpeg/jcmainct.c:247:[Function:jinit_c_main_controller]:   main


the use of `tmpnam' is dangerous, better use `mkstemp':
    jas_stream.c:[At:(.text+0x6c1)]: 


suggest parentheses around assignment used as truth value [-Wparentheses]:
    libjasper/base/jas_image.c:230:[Function:jas_box_alloc]: 
      if ( box->buf = (uint_fast8_t *) jas_malloc( size ) )


comparison between pointer and zero character constant [-Wpointer-compare]:
    libjasper/jpc/jpc_util.c:105:[Function:jpc_atoaf]: 
    libjasper/jpc/jpc_util.c:123:[Function:jpc_atoaf]: 


cast from pointer to integer of different size [-Wpointer-to-int-cast]:
    libjasper/base/jas_image.c:232:[Function:jas_box_alloc]: 
      return (bool) box->buf;
    libjasper/jpc/jpc_t1enc.c:135:[Function:jpc_enc_enccblks]: 
          jas_do_progress( (int) lvl, (int) (endlvls-1), "jpc: encode" );
    libjasper/jpc/jpc_t1enc.c:135:[Function:jpc_enc_enccblks]: 
          jas_do_progress( (int) lvl, (int) (endlvls-1), "jpc: encode" );


<VAR> will be initialized after [-Wreorder]:
    im_format_jp2.cpp:109:[Constructor:imFileFormatJP2::imFileFormatJP2(const 
imFormat*)]:   imFileFormatJP2::image
      jas_image_t *image;
                   ^~~~~
   im_format_jp2.cpp:108:17: warning:   'jas_stream_t* imFileFormatJP2::stream' 
[-Wreorder]
      jas_stream_t *stream;
                    ^~~~~~
   im_format_jp2.cpp:112:3: warning:   when initialized here [-Wreorder]
      imFileFormatJP2(const imFormat* _iformat) : imFileFormatBase(_iformat), 
image(0), stream(0), fmtid(-1) {}
      ^~~~~~~~~~~~~~~
    im_format_jp2.cpp:108:[Constructor:imFileFormatJP2::imFileFormatJP2(const 
imFormat*)]:   imFileFormatJP2::stream
      jas_stream_t *stream;
                    ^~~~~~
   im_format_jp2.cpp:107:7: warning:   'int imFileFormatJP2::fmtid' [-Wreorder]
      int fmtid;
          ^~~~~
   im_format_jp2.cpp:112:3: warning:   when initialized here [-Wreorder]
      imFileFormatJP2(const imFormat* _iformat) : imFileFormatBase(_iformat), 
image(0), stream(0), fmtid(-1) {}
      ^~~~~~~~~~~~~~~


case value <LABEL> not in enumerated type <ENUM> [-Wswitch]:
    libexif/exif-entry.c:1199:[Function:exif_entry_get_value]:   0  ExifTag 
{aka enum <anonymous>}
    libexif/exif-entry.c:1226:[Function:exif_entry_get_value]:   5  ExifTag 
{aka enum <anonymous>}
    libexif/exif-entry.c:1239:[Function:exif_entry_get_value]:   7  ExifTag 
{aka enum <anonymous>}


this 'if' clause does not guard... [-Wmisleading-indentation]:
    libtiff/tif_read.c:495:[Function:TIFFFillStrip]: 
        if (!_TIFFFillStriles( tif ) || !tif->tif_dir.td_stripbytecount)
        ^~
   libtiff/tif_read.c:498:2: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
     if ((tif->tif_flags&TIFF_NOREADRAW)==0)
     ^~
    libtiff/tif_read.c:798:[Function:TIFFFillTile]: 
        if (!_TIFFFillStriles( tif ) || !tif->tif_dir.td_stripbytecount)
        ^~
   libtiff/tif_read.c:801:2: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
     if ((tif->tif_flags&TIFF_NOREADRAW)==0)
     ^~
    libtiff/tif_read.c:960:[Function:TIFFStartStrip]: 
        if (!_TIFFFillStriles( tif ) || !tif->tif_dir.td_stripbytecount)
        ^~
   libtiff/tif_read.c:963:2: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
     if ((tif->tif_flags & TIFF_CODERSETUP) == 0) {
     ^~
    libtiff/tif_dirread.c:4272:[Function:EstimateStripByteCounts]: 
        if( !_TIFFFillStriles( tif ) )
        ^~
   libtiff/tif_dirread.c:4275:2: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
     if (td->td_stripbytecount)
     ^~
    process/im_analyze.cpp:727:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
        ^~
   process/im_analyze.cpp:727:27: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                              ^~
    process/im_analyze.cpp:737:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
        ^~
   process/im_analyze.cpp:737:27: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                              ^~
    process/im_analyze.cpp:747:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
        ^~
   process/im_analyze.cpp:747:27: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                              ^~
    process/im_analyze.cpp:840:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
          if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
          ^~
   process/im_analyze.cpp:840:29: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
          if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                                ^~
    process/im_analyze.cpp:969:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
      if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
      ^~
   process/im_analyze.cpp:969:25: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
      if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                            ^~
    process/im_analyze.cpp:727:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
        ^~
   process/im_analyze.cpp:727:27: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                              ^~
    process/im_analyze.cpp:737:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
        ^~
   process/im_analyze.cpp:737:27: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                              ^~
    process/im_analyze.cpp:747:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
        ^~
   process/im_analyze.cpp:747:27: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
        if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                              ^~
    process/im_analyze.cpp:840:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
          if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
          ^~
   process/im_analyze.cpp:840:29: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
          if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                                ^~
    process/im_analyze.cpp:969:[Function:int 
imAnalyzeMeasurePrincipalAxis(const imImage*, const int*, const double*, const 
double*, int, double*, double*, double*, double*)]: 
      if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
      ^~
   process/im_analyze.cpp:969:25: note: ...this statement, but the latter is 
misleadingly indented as if it were guarded by the 'if'
      if (cm20) free(cm20); if (cm02) free(cm02); if (cm11) free(cm11);
                            ^~


<FUNC> defined but not used [-Wunused-function]:
    libjasper/jpc/jpc_enc.c:886:[Function:jpc_enc_encodemainbody]:   
jpc_calcssexp
    libjasper/jpc/jpc_enc.c:870:[Function:jpc_enc_encodemainbody]:   
jpc_calcssmant


ignoring return value of <FUNC>, declared with attribute warn_unused_result 
[-Wunused-result]:
    libjasper/base/jas_stream.c:369:[Function:jas_stream_tmpfile]:   tmpnam


statement with no effect [-Wunused-value]:
    libexif/fuji/mnote-fuji-tag.c:46:[Function:mnote_fuji_tag_get_title]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/fuji/mnote-fuji-tag.c:46:[Function:mnote_fuji_tag_get_description]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/canon/mnote-canon-tag.c:46:[Function:mnote_canon_tag_get_title]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    
libexif/canon/mnote-canon-tag.c:46:[Function:mnote_canon_tag_get_description]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    
libexif/olympus/mnote-olympus-tag.c:46:[Function:mnote_olympus_tag_get_title]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    
libexif/olympus/mnote-olympus-tag.c:46:[Function:mnote_olympus_tag_get_description]:
 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/pentax/mnote-pentax-tag.c:46:[Function:mnote_pentax_tag_get_title]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    
libexif/pentax/mnote-pentax-tag.c:46:[Function:mnote_pentax_tag_get_description]:
 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/exif-entry.c:46:[Function:exif_entry_get_value]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/exif-format.c:46:[Function:exif_format_get_name]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/exif-tag.c:46:[Function:exif_tag_get_title_in_ifd]: 
    #    define bindtextdomain(Domain,Directory) (Domain)
    libexif/exif-tag.c:46:[Function:exif_tag_get_description_in_ifd]: 
    #    define bindtextdomain(Domain,Directory) (Domain)


<VAR> defined but not used [-Wunused-variable]:
    libjasper/jp2/jp2_cod.h:132:[#included-from:libjasper/jp2/jp2_cod.h:132]:   
xmp_uuid
    libjasper/jp2/jp2_cod.h:125:[#included-from:libjasper/jp2/jp2_cod.h:125]:   
msi_uuid
    libjasper/jp2/jp2_cod.h:132:[#included-from:libjasper/jp2/jp2_cod.h:132]:   
xmp_uuid


variable <VAR> set but not used [-Wunused-but-set-variable]:
    libtiff/tif_open.c:106:[Function:TIFFClientOpen]:   n
    
libexif/olympus/mnote-olympus-entry.c:343:[Function:mnote_olympus_entry_get_value]:
   d
    libjasper/base/jas_icc.c:1072:[Function:jas_icctxtdesc_copy]:   txtdesc
    libjasper/base/jas_icc.c:1259:[Function:jas_icclut8_copy]:   lut8
    libjasper/base/jas_image.c:1360:[Function:jas_image_chclrspc]:   numoutchans
    libjasper/base/jas_image.c:1353:[Function:jas_image_chclrspc]:   
numinauxchans
    libjasper/jp2/jp2_dec.c:115:[Function:jp2_decode]:   cdefd
    libjasper/jpc/jpc_t1enc.c:210:[Function:jpc_enc_enccblk]:   rlvl
    libjasper/jpc/jpc_t1enc.c:205:[Function:jpc_enc_enccblk]:   ret
    libjasper/jpc/jpc_dec.c:438:[Function:jpc_dec_process_crg]:   crg
    libjasper/jpc/jpc_dec.c:702:[Function:jpc_dec_tileinit]:   brcbgyend
    libjasper/jpc/jpc_enc.c:873:[Function:jpc_calcssmant]:   e
    libjasper/jpc/jpc_enc.c:904:[Function:jpc_enc_encodemainhdr]:   mctsynweight
    libjasper/jpc/jpc_enc.c:1121:[Function:jpc_enc_encodemainbody]:   numbytes
    libjasper/jpc/jpc_enc.c:1107:[Function:jpc_enc_encodemainbody]:   tiley
    libjasper/jpc/jpc_enc.c:1106:[Function:jpc_enc_encodemainbody]:   tilex


warning: ISO C++ forbids converting a string constant to <TYPE> 
[-Wwrite-strings]:
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
    im_format_tiff.cpp:[At:52]:   char*
_______________________________________________
Iup-users mailing list
Iup-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to