Skip to content

Commit 564f254

Browse files
committed
added numeric shift expression tests
1 parent 5d9501e commit 564f254

20 files changed

Lines changed: 146 additions & 0 deletions
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/sh -e
2+
3+
. ../../../../scripts/utils.sh
4+
5+
clean
6+
rm -f default-tests.sh default-update-ref.sh
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/sh
2+
3+
export LOCAL_PATH_PREFIX=`cd ../../../../..; echo $PWD`
4+
../run-script
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
constant a = 2 << 0x100000000
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
fpp-check
2+
[ local path prefix ]/compiler/tools/fpp-check/test/numeric_shift/shift_amount_too_large_error.fpp:1.19
3+
constant a = 2 << 0x100000000
4+
^
5+
error: invalid shift amount
6+
note: shift amount must be a non-negative value that fits in a 32-bit integer
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
constant b = true >> 1
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
fpp-check
2+
[ local path prefix ]/compiler/tools/fpp-check/test/numeric_shift/shift_boolean_value_error.fpp:1.19
3+
constant b = true >> 1
4+
^
5+
error: cannot compute common type of bool and Integer
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
constat a = 2 << 1.5
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
fpp-check
2+
[ local path prefix ]/compiler/tools/fpp-check/test/numeric_shift/shift_float_amount_error.fpp:1.1
3+
constat a = 2 << 1.5
4+
^
5+
error: unexpected token
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
constant a = 1.5 << 2
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
Exception in thread "main" internal error: left shift failed
2+
at fpp.compiler.util.InternalError$.apply(Error.scala:7)
3+
at fpp.compiler.analysis.Analysis.shift(Analysis.scala:235)
4+
at fpp.compiler.analysis.Analysis.lshift(Analysis.scala:214)
5+
at fpp.compiler.analysis.EvalConstantExprs$.$anonfun$2(EvalConstantExprs.scala:152)
6+
at fpp.compiler.analysis.EvalConstantExprs$.$anonfun$adapted$1(EvalConstantExprs.scala:152)
7+
at fpp.compiler.analysis.EvalConstantExprs$.exprBinopNode$$anonfun$1(EvalConstantExprs.scala:155)
8+
at scala.util.Either.flatMap(Either.scala:352)
9+
at fpp.compiler.analysis.EvalConstantExprs$.exprBinopNode(EvalConstantExprs.scala:157)
10+
at fpp.compiler.analysis.EvalConstantExprs$.exprBinopNode(EvalConstantExprs.scala:142)
11+
at fpp.compiler.ast.AstVisitor.matchExprNode(AstVisitor.scala:184)
12+
at fpp.compiler.ast.AstVisitor.matchExprNode$(AstVisitor.scala:4)
13+
at fpp.compiler.analysis.EvalConstantExprs$.matchExprNode(EvalConstantExprs.scala:7)
14+
at fpp.compiler.analysis.TypeExpressionAnalyzer.exprNode(TypeExpressionAnalyzer.scala:23)
15+
at fpp.compiler.analysis.TypeExpressionAnalyzer.exprNode$(TypeExpressionAnalyzer.scala:7)
16+
at fpp.compiler.analysis.EvalConstantExprs$.exprNode(EvalConstantExprs.scala:190)
17+
at fpp.compiler.analysis.TypeExpressionAnalyzer.defConstantAnnotatedNode(TypeExpressionAnalyzer.scala:89)
18+
at fpp.compiler.analysis.TypeExpressionAnalyzer.defConstantAnnotatedNode$(TypeExpressionAnalyzer.scala:7)
19+
at fpp.compiler.analysis.EvalConstantExprs$.defConstantAnnotatedNode(EvalConstantExprs.scala:27)
20+
at fpp.compiler.analysis.EvalConstantExprs$.defConstantAnnotatedNode(EvalConstantExprs.scala:23)
21+
at fpp.compiler.ast.AstVisitor.matchModuleMember(AstVisitor.scala:205)
22+
at fpp.compiler.ast.AstVisitor.matchModuleMember$(AstVisitor.scala:4)
23+
at fpp.compiler.analysis.EvalConstantExprs$.matchModuleMember(EvalConstantExprs.scala:7)
24+
at fpp.compiler.ast.AstVisitor.matchTuMember(AstVisitor.scala:270)
25+
at fpp.compiler.ast.AstVisitor.matchTuMember$(AstVisitor.scala:4)
26+
at fpp.compiler.analysis.EvalConstantExprs$.matchTuMember(EvalConstantExprs.scala:7)
27+
at fpp.compiler.analysis.Analyzer.transUnit$$anonfun$1(Analyzer.scala:18)
28+
at fpp.compiler.util.Result$.foldLeft(Result.scala:31)
29+
at fpp.compiler.ast.AstStateVisitor.visitList(AstStateVisitor.scala:25)
30+
at fpp.compiler.ast.AstStateVisitor.visitList$(AstStateVisitor.scala:6)
31+
at fpp.compiler.analysis.EvalConstantExprs$.visitList(EvalConstantExprs.scala:7)
32+
at fpp.compiler.analysis.Analyzer.transUnit(Analyzer.scala:18)
33+
at fpp.compiler.analysis.Analyzer.transUnit$(Analyzer.scala:6)
34+
at fpp.compiler.analysis.EvalConstantExprs$.transUnit(EvalConstantExprs.scala:7)
35+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$1(CheckSemantics.scala:20)
36+
at fpp.compiler.util.Result$.foldLeft(Result.scala:31)
37+
at fpp.compiler.ast.AstStateVisitor.visitList(AstStateVisitor.scala:25)
38+
at fpp.compiler.ast.AstStateVisitor.visitList$(AstStateVisitor.scala:6)
39+
at fpp.compiler.analysis.EvalConstantExprs$.visitList(EvalConstantExprs.scala:7)
40+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2(CheckSemantics.scala:20)
41+
at scala.util.Either.flatMap(Either.scala:352)
42+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2(CheckSemantics.scala:36)
43+
at scala.util.Either.flatMap(Either.scala:352)
44+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2(CheckSemantics.scala:36)
45+
at scala.util.Either.flatMap(Either.scala:352)
46+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2(CheckSemantics.scala:36)
47+
at scala.util.Either.flatMap(Either.scala:352)
48+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2$$anonfun$2(CheckSemantics.scala:36)
49+
at scala.util.Either.flatMap(Either.scala:352)
50+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2$$anonfun$2(CheckSemantics.scala:36)
51+
at scala.util.Either.flatMap(Either.scala:352)
52+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2$$anonfun$2(CheckSemantics.scala:36)
53+
at scala.util.Either.flatMap(Either.scala:352)
54+
at fpp.compiler.analysis.CheckSemantics$.tuList$$anonfun$2(CheckSemantics.scala:36)
55+
at scala.util.Either.flatMap(Either.scala:352)
56+
at fpp.compiler.analysis.CheckSemantics$.tuList(CheckSemantics.scala:36)
57+
at fpp.compiler.tools.FPPCheck$.command$$anonfun$1(fpp-check.scala:25)
58+
at scala.util.Either.flatMap(Either.scala:352)
59+
at fpp.compiler.tools.FPPCheck$.command(fpp-check.scala:30)
60+
at fpp.compiler.tools.FPPCheck$.toolMain$$anonfun$1(fpp-check.scala:55)
61+
at fpp.compiler.util.Tool.mainMethod(Tool.scala:20)
62+
at fpp.compiler.tools.FPPCheck$.toolMain(fpp-check.scala:55)
63+
at fpp.compiler.tools.FPP$.command(fpp.scala:14)
64+
at fpp.compiler.tools.FPP$.main$$anonfun$1(fpp.scala:37)
65+
at fpp.compiler.util.Tool.mainMethod(Tool.scala:20)
66+
at fpp.compiler.tools.FPP$.main(fpp.scala:37)
67+
at fpp.compiler.tools.FPP.main(fpp.scala)

0 commit comments

Comments
 (0)