[cfe-dev] Request for comments on proposed patch for warning	"levels" support
    Sohail Somani 
    sohail at taggedtype.net
       
    Tue Mar  1 09:04:26 PST 2011
    
    
  
Hi,
I'm working on an implementation for part of the #pragma warning from 
Visual C++[1]. An example is below:
   // regular code here
   code()
   // Coming across safe code that triggers warnings at level 4
   #pragma warning(push,3)
   // code that triggers warnings at level 4
   // silenced because we set the level to 3 above
   #pragma warning(pop)
The effect of this is to set the global warning level to be 3 for some 
portion of the file. Each global warning level has associated warnings, 
kind of like the -Wall and -Wextra parameters. So when the global 
warning level is 3, only those warnings that have a level <= 3 will be 
enabled.
The implementation that I am proposing is:
  * Have all warnings default to level 1
  * Map individual warnings to higher levels via a new mixin in 
Diagnostic.td
  * Add a "current level" to the DiagState class
  * Modify DiagState so that the warning level filters out warnings that 
should be ignored
The attached patch contains a first go. The way it is constructed at the 
moment, all warnings will be enabled as they are at level 1 and the 
"current level" defaults to 4.
Also note that the patch contains diffs against some more local changes. 
I hope that there is still enough context.
The important files in the diff (imo):
  * Diagnostic.h/cpp
  * Diagnostic.td
I look forward to your comments.
Thanks for your time!
Sohail
[1] http://msdn.microsoft.com/en-us/library/2c8f766e.aspx
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pragma-warning-level.patch
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20110301/c1f85370/attachment.ksh>
    
    
More information about the cfe-dev
mailing list