RFR(S): 8036122: Fix warning 'format not a string literal'

Mike Duigou mike.duigou at oracle.com
Mon Mar 3 17:06:39 UTC 2014


This looks fine. 

Minor comments:

- I removed the --no-error=format-string-literal from solaris/gcc.make as well.

- The initial snprintf in os_linux.cpp could be the other branch of the "if (proc_task_unchecked && os::Linux::is_NPTL())" conditional.

I am testing the patch now though another reviewer is needed before this can be pushed.

Mike

On Mar 3 2014, at 08:03 , Lindenmaier, Goetz <goetz.lindenmaier at sap.com> wrote:

> Hi,
>  
> I found a way to simplify my change considerably, and thus updated the webrev:
> http://cr.openjdk.java.net/~goetz/webrevs/8036122-1-fmtWrn/
>  
> In compilerOracle.cpp was a loop checking three format strings with sscanf.
> Before, I had unrolled the loop.
> Now I figured, that before this loop is reached, the command lines are normalized
> to format   
>   exclude java/lang/String indexOf
> so that only one of the three format strings used will ever apply.  So I need to
> check only this one of the three formats anyways.
>  
> This makes this already small change much nicer.
>  
> Best regards,
>   Goetz.
>  
>  
>  
> From: Lindenmaier, Goetz 
> Sent: Montag, 3. März 2014 14:22
> To: hotspot-dev Source Developers; 'Mike Duigou'
> Subject: RFR(S): 8036122: Fix warning 'format not a string literal'
>  
> Hi,
> Since "8030350: Enable additional compiler warnings for GCC", the hotspot build issues warnings:
> 
> src/share/vm/compiler/compilerOracle.cpp: In function 'bool scan_line(const char*, char*, MethodMatcher::Mode*, char*, MethodMatcher::Mode*, int*, const char*&)':
> src/share/vm/compiler/compilerOracle.cpp:425: warning: format not a string literal, argument types not checked
> src/os/linux/vm/os_linux.cpp: In function 'jlong slow_thread_cpu_time(Thread*, bool)':
> src/os/linux/vm/os_linux.cpp:5316: warning: format not a string literal, argument types not checked
> 
> Also, older gccs (4.2.2 and before) can not build hotspot any more. They don't know the option introduced in that change:
> 
> cc1plus: error: unrecognized command line option "-Wno-error=format-nonliteral"
> 
> This change fixes both by
> 
> -         Fixing the warning in the hotspot code
> 
> -         removing the flag from the makefiles.
> 
> Thus, the build with new gcc does no more issue warnings, and the build with older ones works again.
> 
> Please review and test this change – and I please need a sponsor.
> 
> http://cr.openjdk.java.net/~goetz/webrevs/8036122-1-fmtWrn/
> 
> Best regards,
> 
>   Goetz.
> 



More information about the hotspot-dev mailing list