mirror of https://github.com/aamine/cbc
* net/loveruby/cflat/compiler/TypeChecker.java: better error message.
* test/test.sh: run following tests. * test/deref-semcheck1.cb: check if dereferencing int causes compile error. * test/deref-semcheck2.cb: check if dereferencing char causes compile error. * test/deref-semcheck3.cb: check if dereferencing struct causes compile error. git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@3767 1b9489fe-b721-0410-924e-b54b9192deb8
This commit is contained in:
parent
705818d1dc
commit
1dedd1d283
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
|||
Wed Jan 2 01:32:12 2008 Minero Aoki <aamine@loveruby.net>
|
||||
|
||||
* net/loveruby/cflat/compiler/TypeChecker.java: better error
|
||||
message.
|
||||
|
||||
* test/test.sh: run following tests.
|
||||
|
||||
* test/deref-semcheck1.cb: check if dereferencing int causes
|
||||
compile error.
|
||||
|
||||
* test/deref-semcheck2.cb: check if dereferencing char causes
|
||||
compile error.
|
||||
|
||||
* test/deref-semcheck3.cb: check if dereferencing struct causes
|
||||
compile error.
|
||||
|
||||
Wed Jan 2 01:24:05 2008 Minero Aoki <aamine@loveruby.net>
|
||||
|
||||
* net/loveruby/cflat/compiler/TypeChecker.java: check member
|
||||
|
|
|
@ -394,16 +394,17 @@ class TypeChecker extends Visitor {
|
|||
}
|
||||
|
||||
protected void incompatibleTypeError(Type l, Type r) {
|
||||
errorHandler.error("incompatible type: " +
|
||||
l.textize() + " and " + r.textize());
|
||||
errorHandler.error("incompatible type: "
|
||||
+ l.textize() + " and " + r.textize());
|
||||
}
|
||||
|
||||
protected void notIntegerError(Type type) {
|
||||
errorHandler.error("non-integer argument for unary op: " +
|
||||
type.textize());
|
||||
errorHandler.error("non-integer argument for unary op: "
|
||||
+ type.textize());
|
||||
}
|
||||
|
||||
protected void notPointerError(Type type) {
|
||||
errorHandler.error("non-pointer argument: " + type.textize());
|
||||
errorHandler.error("dereferencing non-pointer expression: "
|
||||
+ type.textize());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
int main(int argc, char **argv) { return *1; }
|
|
@ -0,0 +1 @@
|
|||
int main(int argc, char **argv) { return *'c'; }
|
|
@ -0,0 +1,6 @@
|
|||
struct st { int x; };
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
struct st s;
|
||||
return *s;
|
||||
}
|
|
@ -135,6 +135,9 @@ assert_error $CBC union-semcheck6.cb
|
|||
|
||||
assert_out "5;5" ./pointer
|
||||
assert_out "1;2" ./ptrmemb
|
||||
assert_error $CBC deref-semcheck1.cb
|
||||
assert_error $CBC deref-semcheck2.cb
|
||||
assert_error $CBC deref-semcheck3.cb
|
||||
|
||||
assert_out "2;64;-128;0" ./charops
|
||||
assert_out "2;64;128;0" ./ucharops
|
||||
|
|
Loading…
Reference in New Issue