summaryrefslogtreecommitdiffstats
path: root/dimension/common.rules
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2010-04-18 23:18:45 -0400
committerTavian Barnes <tavianator@gmail.com>2010-04-18 23:18:45 -0400
commit919121bdf572b632cc5bfbbee502664682b26ab8 (patch)
tree528a83bb716851152ebc12aee385417b8f407601 /dimension/common.rules
parent004d63c0c199a1544dc9b3af9cdd3367a6969d23 (diff)
downloaddimension-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.rules8
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));