[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hylndr::dclreview

Title:DCLREVIEW
Moderator:HYLNDR::SYSTEM
Created:Sun Apr 19 1987
Last Modified:Fri May 23 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:773
Total number of notes:5391

772.0. "Additions to /WARNINGS for C and C++" by DECC::VOGEL () Fri May 09 1997 17:46

    Product: DEC C and C++ for OpenVMS

    Contact Name: Ed Vogel
    E-Mail Address: DECC::VOGEL
    DTN: 381-2668

    Additions to the /WARNINGS qualifier in DEC C and C++.

    Command Summary:

	extend the /WARNINGS qualifier to allow the user to:
	    .Change the severity of certain messages
	    .Change the "emit once" characteristic of a message

	For changing severity, we will not allow an -F- or -E- level
	message to be made less severe.  Any other change is allowed.

	The "emit once" characteristic is a new concept for DEC C/C++.
	We plan to make certain messages "emit once".  These are messages
	that will be displayed only the first time the compiler encounters
	the condition that would cause the message.  We expect to make 
	a number of messages emit once messages.  An example of an
	emit once message would be a warning that informs a user their
	program uses some feature of DEC C/C++ which is a language
	extension.  It makes sense to warn the user that this feature
	is being used, but it does not make sense to issue a warning
	on every use in the program (as we often do today).
	

    Justification:

	We have been asked for these features.  They will also
	be enabled via language #pragma directives, but for completeness
	we want command line controls for them also.

    Details:

        The current /WARNINGS qualifier options are:

	  /WARNINGS

		/WARNINGS[=(option[,...])]
		/WARNINGS (D)
		/NOWARNINGS
 
	The existing options are:

	DISABLE=(msg-list) Suppresses the issuance of the indicated
			messages.  Msg-list is a comma-separated list of
			individual message IDs or message group names.

	ENABLE=(msg-list)  Enables the issuance of the indicated messages.
			Msg-list is a comma-separated list of individual
			message IDs or message group names.

	NOINFORMATIONALS   Suppresses informational messages.



	We propose to add the following options:

	FATALS=(msg-list)	Each message on the msg-list will be 
				set to have fatal severity.

	ERRORS=(msg-list)	Each message on the msg-list will be
				set to have error severity.

	WARNINGS=(msg-list)	Each message on the msg-list will be
				set to have warning severity.

	INFORMATIONALS=(msg-list) Each message on the msg-list will be
				set to have informational severity.

	EMIT_ONCE=(mgs-list)	Emit these messages only once per compilation.

	EMIT_ALWAYS=(mgs-list)	Emit these messages at every occurrence of
				the condition.


    Semantic Notes:

	Today, if a message is on both the enabled and disabled list
	it is disabled.  We propose that if a message is on both
	the EMIT_ONCE and the EMIT_ALWAYS list that it will be considered
	on the EMIT_ONCE list.  If a message is on more than one
	of the FATALS, ERRORS, WARNINGS, or INFORMATIONALS lists, the message
	will be given the least severe level.


	Also note that the NOINFORMATIONALS option is not the negation
	of INFORMATIONALS=(msg-list).  It is valid to say:

	/WARN=(INFORMATIONALS=(message_list),NOINFORMATIONALS)

	This has the effect of making the messages on the message_list
	informationals, and causing the compiler not to output any
	informational messages.
T.RTitleUserPersonal
Name
DateLines
772.1TLE::REAGANAll of this chaos makes perfect senseMon May 12 1997 10:587
    Sure.
    
    However, given the line length limits on DCL, you aren't going to be
    able to get that complicated with "moving" dozens of errors from one
    group to another...
    
    				-John