Deprecate built-in _PI

Fixes #670
This commit is contained in:
Rangi
2020-12-30 09:28:59 -05:00
committed by Eldred Habert
parent 2a9d52871b
commit 10e3f1a02b
9 changed files with 29 additions and 8 deletions

View File

@@ -11,7 +11,7 @@
#include <stdint.h>
void math_DefinePI(void);
int32_t math_Callback_PI(void);
void math_Print(int32_t i);
int32_t math_Sin(int32_t i);
int32_t math_Cos(int32_t i);

View File

@@ -17,6 +17,7 @@
#include "asm/mymath.h"
#include "asm/symbol.h"
#include "asm/warning.h"
#define fx2double(i) ((double)((i) / 65536.0))
#define double2fx(d) ((int32_t)((d) * 65536.0))
@@ -26,11 +27,13 @@
#endif
/*
* Define the _PI symbol
* Return the _PI symbol value
*/
void math_DefinePI(void)
int32_t math_Callback_PI(void)
{
sym_AddEqu("_PI", double2fx(M_PI));
warning(WARNING_OBSOLETE, "`_PI` is deprecated; use 3.14159\n");
return double2fx(M_PI);
}
/*

View File

@@ -720,5 +720,12 @@ void sym_Init(time_t now)
labelScope = NULL;
anonLabelID = 0;
math_DefinePI();
/* _PI is deprecated */
struct Symbol *_PISymbol = createBuiltinSymbol("_PI");
_PISymbol->type = SYM_EQU;
_PISymbol->src = NULL;
_PISymbol->fileLine = 0;
_PISymbol->hasCallback = true;
_PISymbol->numCallback = math_Callback_PI;
}

View File

@@ -0,0 +1,4 @@
; Remove this test case when _PI is removed.
PRINTF _PI
PRINTT "\n"
PURGE _PI

View File

@@ -0,0 +1,5 @@
warning: deprecated-pi.asm(2): [-Wobsolete]
`_PI` is deprecated; use 3.14159
ERROR: deprecated-pi.asm(4):
Built-in symbol '_PI' cannot be purged
error: Assembly aborted (1 errors)!

View File

@@ -0,0 +1 @@
3.14159

View File

@@ -13,7 +13,7 @@ PRINTT STRFMT(TEMPLATE, "roses", "red")
PRINTT STRFMT(TEMPLATE, "violets", "blue")
PRINTT STRFMT(TEMPLATE, "void", 0, "extra")
PRINTT STRCAT(STRFMT(STRFMT("%%%s.%d%s", "", 9, "f"), _PI), \
PRINTT STRCAT(STRFMT(STRFMT("%%%s.%d%s", "", 9, "f"), 3.14159), \
STRFMT(" ~ %s\n", STRFMT("%s%x", "thr", 238)))
PRINTT STRFMT("%d eol %", 1)

View File

@@ -1,11 +1,12 @@
n equ 300
m equ -42
f equ -123.0456
pi equ 3.14159
s equs "hello"
printt "<{ -6d:n}> <{+06u:n}> <{5x:n}> <{#16b:n}>\n"
printt "<{u:m}> <{+3d:m}> <{#016o:m}>\n"
printt "<{f:_PI}> <{06f:f}> <{.10f:f}>\n"
printt "<{f:pi}> <{06f:f}> <{.10f:f}>\n"
printt "<{#-10s:s}> <{10s:s}>\n"
foo: macro

View File

@@ -1,3 +1,3 @@
ERROR: string-formatting.asm(9):
ERROR: string-formatting.asm(10):
Formatting string with prefix flag '#'
error: Assembly aborted (1 errors)!