diff options
author | Tavian Barnes <tavianator@gmail.com> | 2010-04-18 23:18:45 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@gmail.com> | 2010-04-18 23:18:45 -0400 |
commit | 919121bdf572b632cc5bfbbee502664682b26ab8 (patch) | |
tree | 528a83bb716851152ebc12aee385417b8f407601 /dimension/common.rules | |
parent | 004d63c0c199a1544dc9b3af9cdd3367a6969d23 (diff) | |
download | dimension-919121bdf572b632cc5bfbbee502664682b26ab8.tar.xz |
Give backtraces for diagnostics from macros and include files.
Partly this means that dmnsn_diagnostic() can't be called anywhere except
during parsing, because the dmnsn_parse_location::parent pointers dangle.
Diffstat (limited to 'dimension/common.rules')
-rw-r--r-- | dimension/common.rules | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/dimension/common.rules b/dimension/common.rules index d77ab1a..157edca 100644 --- a/dimension/common.rules +++ b/dimension/common.rules @@ -477,6 +477,14 @@ FLOAT: ARITH_EXPR { } ; +INT: FLOAT { + $$ = $1; + if ($$.type == DMNSN_AST_FLOAT) { + dmnsn_diagnostic(@$, "WARNING: float rounded to integer"); + } + } +; + FLOAT_LITERAL: "integer" { $$ = dmnsn_new_astnode(DMNSN_AST_INTEGER, @$); $$.ptr = dmnsn_malloc(sizeof(long)); |