summaryrefslogtreecommitdiffstats
path: root/testsuite
diff options
context:
space:
mode:
authorfche <fche>2005-08-12 19:43:55 +0000
committerfche <fche>2005-08-12 19:43:55 +0000
commit3a20432bc0a0aa6d8651561d508cc730e6dabc97 (patch)
tree2d957fcf675df9a8f3a909ab51f1177ae4854137 /testsuite
parentba3f9e9ebb1b8cae641159305031ec5fee637fd4 (diff)
downloadsystemtap-steved-3a20432bc0a0aa6d8651561d508cc730e6dabc97.tar.gz
systemtap-steved-3a20432bc0a0aa6d8651561d508cc730e6dabc97.tar.xz
systemtap-steved-3a20432bc0a0aa6d8651561d508cc730e6dabc97.zip
2005-08-12 Frank Ch. Eigler <fche@elastic.org>
PR systemtap/1122 et alii * parse.cxx (parse_literal): Parse and range-limit 64-bit numbers. (parse_unary): Correct precedence glitch. * staptree.h (literal_number): Store an int64_t. * staptree.cxx: Corresponding changes. * translate.cxx (check_dbz): Remove - insufficient. (emit_function): Define CONTEXT macro sibling for THIS. (c_typename): pe_long -> int64_t. (visit_literal_number): Format literal rigorously and uglily. (c_assignop, visit_binary_expression): Handle div/mod via new helper functions in runtime. * tapset/builtin_logging.stp: Add error, exit builtins. * testsuite/buildok/ten,eleven.stp: New tests. * testsuite/parse{ko,ok}/six.stp: Modify for larger numbers. * testsuite/transok/one.stp: Add more ";"s, maybe unnecessarily. 2005-08-12 Frank Ch. Eigler <fche@elastic.org> * arith.c: New file to contain arithmetic helper functions. * builtin_functions.h: Remove, unused. * runtime.h: Include it.
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/buildok/eleven.stp17
-rwxr-xr-xtestsuite/buildok/ten.stp14
-rwxr-xr-xtestsuite/parseko/six.stp1
-rwxr-xr-xtestsuite/parseok/six.stp12
-rwxr-xr-xtestsuite/transok/one.stp20
5 files changed, 50 insertions, 14 deletions
diff --git a/testsuite/buildok/eleven.stp b/testsuite/buildok/eleven.stp
new file mode 100755
index 00000000..66d4a318
--- /dev/null
+++ b/testsuite/buildok/eleven.stp
@@ -0,0 +1,17 @@
+#! stap -p4
+
+probe begin
+{
+ a = -1 / -1;
+ b = 2147483647;
+ c = 4294967295 / a;
+ d = (-2147483647-1) % c;
+ e = 9223372036854775807 * b;
+ d /= b % e;
+ b %= 0 / f;
+ x = 1 / 0;
+}
+probe end
+{
+ y %= 0;
+}
diff --git a/testsuite/buildok/ten.stp b/testsuite/buildok/ten.stp
new file mode 100755
index 00000000..6015fbb9
--- /dev/null
+++ b/testsuite/buildok/ten.stp
@@ -0,0 +1,14 @@
+#! stap -p4
+
+probe begin
+{
+ a = 1+01+0x1-1-01-0x1;
+
+ long_max = 2147483647;
+ ulong_max = 4294967295;
+ long_min = -2147483647-1;
+
+ llong_max = 9223372036854775807;
+ ullong_max = 18446744073709551615;
+ llong_min = -9223372036854775807-1;
+}
diff --git a/testsuite/parseko/six.stp b/testsuite/parseko/six.stp
index f37cd034..803d864c 100755
--- a/testsuite/parseko/six.stp
+++ b/testsuite/parseko/six.stp
@@ -5,4 +5,5 @@ probe foo {
b = 0xzoopoo;
c = 00011122233344455566677788;
d = 07777777777777777777777777;
+ e = 18446744073709551616; # ULLONG_MAX+1
}
diff --git a/testsuite/parseok/six.stp b/testsuite/parseok/six.stp
index bc16a336..5c3d7866 100755
--- a/testsuite/parseok/six.stp
+++ b/testsuite/parseok/six.stp
@@ -1,8 +1,14 @@
#! stap -p1
-probe one
+probe nothing
{
a = 1+01+0x1-1-01-0x1;
- b = 2147483647;
- c = -2147483647-1;
+
+ long_max = 2147483647;
+ ulong_max = 4294967295;
+ long_min = -2147483647-1;
+
+ llong_max = 9223372036854775807;
+ ullong_max = 18446744073709551615;
+ llong_min = -9223372036854775807-1;
}
diff --git a/testsuite/transok/one.stp b/testsuite/transok/one.stp
index 6c624f14..7da27549 100755
--- a/testsuite/transok/one.stp
+++ b/testsuite/transok/one.stp
@@ -42,15 +42,13 @@ probe begin
a / b
a % b
- # all unary operators
- a ++
- a --
- -- a
- -- b
- ~ a
- ! a
- ; # grammar glitch
- + a
- ; # grammar glitch
- - a
+ # all unary operators; use explicit ";" to avoid grammar ambiguities
+ a ++ ;
+ a -- ;
+ ++ a ;
+ -- b ;
+ ~ a ;
+ ! a ;
+ + a ;
+ - a ;
}