mirror of
https://github.com/cc65/cc65.git
synced 2024-11-18 00:07:21 +00:00
Merge pull request #462 from pmjdebruijn/pragma-message
pragma: add minimalist message pragma implementation
This commit is contained in:
commit
f0d760de4a
@ -1119,6 +1119,23 @@ parameter with the <tt/#pragma/.
|
||||
remembered and output as a whole when translation is finished.
|
||||
|
||||
|
||||
<sect1><tt>#pragma message (<message>)</tt><label id="pragma-message"><p>
|
||||
|
||||
This pragma is used to display informational messages at compile-time.
|
||||
|
||||
The message intented to be displayed must be a string literal.
|
||||
|
||||
Example:
|
||||
<tscreen><verb>
|
||||
#pragma message ("in a bottle")
|
||||
</verb></tscreen>
|
||||
|
||||
Results in the compiler outputting the following to stderr:
|
||||
<tscreen><verb>
|
||||
example.c(42): Note: in a bottle
|
||||
</verb></tscreen>
|
||||
|
||||
|
||||
<sect1><tt>#pragma optimize ([push,] on|off)</tt><label id="pragma-optimize"><p>
|
||||
|
||||
Switch optimization on or off. If the argument is "off", optimization is
|
||||
|
@ -78,6 +78,7 @@ typedef enum {
|
||||
PRAGMA_DATASEG, /* obsolete */
|
||||
PRAGMA_INLINE_STDFUNCS,
|
||||
PRAGMA_LOCAL_STRINGS,
|
||||
PRAGMA_MESSAGE,
|
||||
PRAGMA_OPTIMIZE,
|
||||
PRAGMA_REGISTER_VARS,
|
||||
PRAGMA_REGVARADDR,
|
||||
@ -114,6 +115,7 @@ static const struct Pragma {
|
||||
{ "dataseg", PRAGMA_DATASEG }, /* obsolete */
|
||||
{ "inline-stdfuncs", PRAGMA_INLINE_STDFUNCS },
|
||||
{ "local-strings", PRAGMA_LOCAL_STRINGS },
|
||||
{ "message", PRAGMA_MESSAGE },
|
||||
{ "optimize", PRAGMA_OPTIMIZE },
|
||||
{ "register-vars", PRAGMA_REGISTER_VARS },
|
||||
{ "regvaraddr", PRAGMA_REGVARADDR },
|
||||
@ -750,6 +752,13 @@ static void IntPragma (StrBuf* B, IntStack* Stack, long Low, long High)
|
||||
|
||||
|
||||
|
||||
static void MakeMessage (const char* Message)
|
||||
{
|
||||
fprintf (stderr, "%s(%u): Note: %s\n", GetInputName (CurTok.LI), GetInputLine (CurTok.LI), Message);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void ParsePragma (void)
|
||||
/* Parse the contents of the _Pragma statement */
|
||||
{
|
||||
@ -849,6 +858,10 @@ static void ParsePragma (void)
|
||||
FlagPragma (&B, &LocalStrings);
|
||||
break;
|
||||
|
||||
case PRAGMA_MESSAGE:
|
||||
StringPragma (&B, MakeMessage);
|
||||
break;
|
||||
|
||||
case PRAGMA_OPTIMIZE:
|
||||
FlagPragma (&B, &Optimize);
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user