summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2013-02-06 08:26:55 +0000
committermm <mm@FreeBSD.org>2013-02-06 08:26:55 +0000
commite18d44a7a853a2f216a35af4921d43250c5768b7 (patch)
treefff9c659806e60c306b6a31a129a6e8da27d4d0d
parent414c26b0de3bd482361784abe2fe104af30b7b84 (diff)
downloadFreeBSD-src-e18d44a7a853a2f216a35af4921d43250c5768b7.zip
FreeBSD-src-e18d44a7a853a2f216a35af4921d43250c5768b7.tar.gz
Update vendor/illumos/dist to illumos-gate version 13944:bbcbb468dc37
Illumos dtrace issues: 3519 DTrace fails to resolve const types from fbt 3520 dtrace internal error -- token type 316 is not a valid D compilation token 3521 clean up dtrace unit tests
-rw-r--r--cmd/dtrace/test/tst/common/funcs/tst.copyin.d9
-rw-r--r--cmd/dtrace/test/tst/common/funcs/tst.strjoin.d9
-rw-r--r--cmd/dtrace/test/tst/common/misc/tst.dynopt.d23
-rw-r--r--cmd/dtrace/test/tst/common/pointers/err.BadAlign.d7
-rw-r--r--cmd/dtrace/test/tst/common/pointers/err.InvalidAddress2.d5
-rw-r--r--cmd/dtrace/test/tst/common/pointers/err.InvalidAddress3.d7
-rw-r--r--cmd/dtrace/test/tst/common/pointers/err.InvalidAddress4.d11
-rw-r--r--cmd/dtrace/test/tst/common/print/err.D_PRINT_AGG.bad.d29
-rw-r--r--cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d7
-rw-r--r--cmd/dtrace/test/tst/common/print/err.D_PROTO_LEN.bad.d7
-rw-r--r--cmd/dtrace/test/tst/common/safety/tst.copyin.d6
-rw-r--r--cmd/dtrace/test/tst/common/scripting/tst.egid.ksh6
-rw-r--r--cmd/dtrace/test/tst/common/speculation/err.BufSizeVariations2.d4
-rw-r--r--cmd/dtrace/test/tst/common/trace/err.D_PROTO_LEN.bad.d10
-rw-r--r--cmd/dtrace/test/tst/common/trace/err.D_TRACE_VOID.bad.d9
-rw-r--r--cmd/dtrace/test/tst/common/types/tst.const.d29
-rw-r--r--lib/libdtrace/common/dt_cc.c6
-rw-r--r--lib/libdtrace/common/dt_decl.c6
-rw-r--r--lib/libdtrace/common/dt_errtags.h2
19 files changed, 158 insertions, 34 deletions
diff --git a/cmd/dtrace/test/tst/common/funcs/tst.copyin.d b/cmd/dtrace/test/tst/common/funcs/tst.copyin.d
index 186b974..4ecc23e 100644
--- a/cmd/dtrace/test/tst/common/funcs/tst.copyin.d
+++ b/cmd/dtrace/test/tst/common/funcs/tst.copyin.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION:
@@ -52,3 +54,8 @@ BEGIN
printf("envp[0] = \"%s\"", copyinstr(envp));
exit(0);
}
+
+BEGIN
+{
+ exit(1)
+}
diff --git a/cmd/dtrace/test/tst/common/funcs/tst.strjoin.d b/cmd/dtrace/test/tst/common/funcs/tst.strjoin.d
index 392c18a..0f23737 100644
--- a/cmd/dtrace/test/tst/common/funcs/tst.strjoin.d
+++ b/cmd/dtrace/test/tst/common/funcs/tst.strjoin.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
#pragma D option quiet
@@ -36,3 +38,8 @@ BEGIN
printf("%s\n", strjoin("", ""));
exit(0);
}
+
+BEGIN
+{
+ exit(1);
+}
diff --git a/cmd/dtrace/test/tst/common/misc/tst.dynopt.d b/cmd/dtrace/test/tst/common/misc/tst.dynopt.d
index cb98d73..78d96f0 100644
--- a/cmd/dtrace/test/tst/common/misc/tst.dynopt.d
+++ b/cmd/dtrace/test/tst/common/misc/tst.dynopt.d
@@ -24,38 +24,45 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
#pragma D option quiet
#pragma D option switchrate=1ms
#pragma D option aggrate=1ms
-tick-100ms
+tick-50ms
{
i++;
}
-tick-100ms
-/i > 1/
+tick-50ms
+/!(i & 1) && i > 1/
{
setopt("quiet", "no");
setopt("quiet");
setopt("quiet");
setopt("quiet", "yes");
@["abc"] = count();
+}
+
+tick-50ms
+/(i & 1) && i > 1/
+{
printa("%@d\n", @);
}
-tick-100ms
-/i == 5/
+tick-50ms
+/i == 10/
{
setopt("switchrate", "5sec");
setopt("aggrate", "5sec");
}
-tick-100ms
-/i == 31/
+tick-50ms
+/i == 61/
{
exit(0);
}
diff --git a/cmd/dtrace/test/tst/common/pointers/err.BadAlign.d b/cmd/dtrace/test/tst/common/pointers/err.BadAlign.d
index ab4106d..3923cd9 100644
--- a/cmd/dtrace/test/tst/common/pointers/err.BadAlign.d
+++ b/cmd/dtrace/test/tst/common/pointers/err.BadAlign.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION: This test reproduces the alignment error.
@@ -39,9 +41,10 @@
BEGIN
{
- x = (int *) 64;
+ x = (int *)64;
y = *x;
trace(y);
+ exit(0);
}
ERROR
diff --git a/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress2.d b/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress2.d
index 324f401..6c79bfa 100644
--- a/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress2.d
+++ b/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress2.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION: D pointers do not allow invalid pointer accesses.
@@ -44,6 +46,7 @@ BEGIN
y = (int *) (x - 3300778156056);
*y = 3;
trace(*y);
+ exit(0);
}
ERROR
diff --git a/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress3.d b/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress3.d
index 39bd114..66c2030 100644
--- a/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress3.d
+++ b/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress3.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION: D pointers do not allow invalid pointer accesses.
@@ -39,9 +41,10 @@
BEGIN
{
- y = (int *) (-33007);
+ y = (int *)-33007;
*y = 3;
trace(*y);
+ exit(0);
}
ERROR
diff --git a/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress4.d b/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress4.d
index 9d6b144..f5f49e9 100644
--- a/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress4.d
+++ b/cmd/dtrace/test/tst/common/pointers/err.InvalidAddress4.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION: Demonstrating valid memory access.
@@ -40,10 +42,11 @@
BEGIN
{
x = (int *)alloca(sizeof (int));
- printf("Address x: %x\n", (int) x);
- y = (int *) (x - 2);
+ printf("Address x: %x\n", (int)x);
+ y = (int *)(x - 2);
*y = 3;
- printf("Address y: %x\tValue: %d\n", (int) y, *y);
+ printf("Address y: %x\tValue: %d\n", (int)y, *y);
+ exit(0);
}
ERROR
diff --git a/cmd/dtrace/test/tst/common/print/err.D_PRINT_AGG.bad.d b/cmd/dtrace/test/tst/common/print/err.D_PRINT_AGG.bad.d
new file mode 100644
index 0000000..5479d00
--- /dev/null
+++ b/cmd/dtrace/test/tst/common/print/err.D_PRINT_AGG.bad.d
@@ -0,0 +1,29 @@
+/*
+ * CDDL HEADER START
+ *
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
+BEGIN
+{
+ @ = count();
+ print(@);
+}
+
+BEGIN
+{
+ exit(0);
+}
diff --git a/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d b/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d
index 902f072..4f45885 100644
--- a/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d
+++ b/cmd/dtrace/test/tst/common/print/err.D_PRINT_VOID.bad.d
@@ -20,10 +20,15 @@
*/
/*
- * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
BEGIN
{
print((void)`p0);
}
+
+BEGIN
+{
+ exit(0);
+}
diff --git a/cmd/dtrace/test/tst/common/print/err.D_PROTO_LEN.bad.d b/cmd/dtrace/test/tst/common/print/err.D_PROTO_LEN.bad.d
index a1d3be1..368caeb 100644
--- a/cmd/dtrace/test/tst/common/print/err.D_PROTO_LEN.bad.d
+++ b/cmd/dtrace/test/tst/common/print/err.D_PROTO_LEN.bad.d
@@ -20,10 +20,15 @@
*/
/*
- * Copyright (c) 2011 by Delphix. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
BEGIN
{
print();
}
+
+BEGIN
+{
+ exit(0);
+}
diff --git a/cmd/dtrace/test/tst/common/safety/tst.copyin.d b/cmd/dtrace/test/tst/common/safety/tst.copyin.d
index 7426d19..beb1c50 100644
--- a/cmd/dtrace/test/tst/common/safety/tst.copyin.d
+++ b/cmd/dtrace/test/tst/common/safety/tst.copyin.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION:
@@ -39,7 +41,7 @@
*/
-#pragma D option bufsize=16
+#pragma D option bufsize=32
#pragma D option bufpolicy=ring
#pragma D option statusrate=1nsec
diff --git a/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh b/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh
index 9e1955f..b0d9854 100644
--- a/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh
+++ b/cmd/dtrace/test/tst/common/scripting/tst.egid.ksh
@@ -25,7 +25,9 @@
# Use is subject to license terms.
#
-#ident "%Z%%M% %I% %E% SMI"
+#
+# Copyright (c) 2012 by Delphix. All rights reserved.
+#
############################################################################
# ASSERTION:
@@ -70,7 +72,7 @@ EOF
#chmod 555 the .d file
chmod 555 $dfilename >/dev/null 2>&1
-if [ &? -ne 0 ]; then
+if [ $? -ne 0 ]; then
print -u2 "chmod $dfilename failed"
exit 1
fi
diff --git a/cmd/dtrace/test/tst/common/speculation/err.BufSizeVariations2.d b/cmd/dtrace/test/tst/common/speculation/err.BufSizeVariations2.d
index f660e9a..5ac7957 100644
--- a/cmd/dtrace/test/tst/common/speculation/err.BufSizeVariations2.d
+++ b/cmd/dtrace/test/tst/common/speculation/err.BufSizeVariations2.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION:
diff --git a/cmd/dtrace/test/tst/common/trace/err.D_PROTO_LEN.bad.d b/cmd/dtrace/test/tst/common/trace/err.D_PROTO_LEN.bad.d
index a1ec95c..68c1195 100644
--- a/cmd/dtrace/test/tst/common/trace/err.D_PROTO_LEN.bad.d
+++ b/cmd/dtrace/test/tst/common/trace/err.D_PROTO_LEN.bad.d
@@ -24,8 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
-
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION:
@@ -39,3 +40,8 @@ BEGIN
trace();
}
+
+BEGIN
+{
+ exit(0);
+}
diff --git a/cmd/dtrace/test/tst/common/trace/err.D_TRACE_VOID.bad.d b/cmd/dtrace/test/tst/common/trace/err.D_TRACE_VOID.bad.d
index eb9f194..ed044b2 100644
--- a/cmd/dtrace/test/tst/common/trace/err.D_TRACE_VOID.bad.d
+++ b/cmd/dtrace/test/tst/common/trace/err.D_TRACE_VOID.bad.d
@@ -24,7 +24,9 @@
* Use is subject to license terms.
*/
-#pragma ident "%Z%%M% %I% %E% SMI"
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
/*
* ASSERTION:
@@ -37,3 +39,8 @@ BEGIN
{
trace((void)`kmem_flags);
}
+
+BEGIN
+{
+ exit(0);
+}
diff --git a/cmd/dtrace/test/tst/common/types/tst.const.d b/cmd/dtrace/test/tst/common/types/tst.const.d
new file mode 100644
index 0000000..dae3d90
--- /dev/null
+++ b/cmd/dtrace/test/tst/common/types/tst.const.d
@@ -0,0 +1,29 @@
+/*
+ * CDDL HEADER START
+ *
+ * This file and its contents are supplied under the terms of the
+ * Common Development and Distribution License ("CDDL"), version 1.0.
+ * You may only use this file in accordance with the terms of version
+ * 1.0 of the CDDL.
+ *
+ * A full copy of the text of the CDDL should have accompanied this
+ * source. A copy of the CDDL is also available via the Internet at
+ * http://www.illumos.org/license/CDDL.
+ *
+ * CDDL HEADER END
+ */
+
+/*
+ * Copyright (c) 2012 by Delphix. All rights reserved.
+ */
+
+/*
+ * Make sure we can scope types with modifiers.
+ */
+
+BEGIN
+{
+ trace((D`int *)0);
+ trace((const D`int *)0);
+ exit(0);
+}
diff --git a/lib/libdtrace/common/dt_cc.c b/lib/libdtrace/common/dt_cc.c
index 4163e93..9661ad9 100644
--- a/lib/libdtrace/common/dt_cc.c
+++ b/lib/libdtrace/common/dt_cc.c
@@ -676,6 +676,12 @@ dt_action_trace(dtrace_hdl_t *dtp, dt_node_t *dnp, dtrace_stmtdesc_t *sdp)
"%s( ) may not be applied to a translated pointer\n", act);
}
+ if (dnp->dn_args->dn_kind == DT_NODE_AGG) {
+ dnerror(dnp->dn_args, istrace ? D_TRACE_AGG : D_PRINT_AGG,
+ "%s( ) may not be applied to an aggregation%s\n", act,
+ istrace ? "" : " -- did you mean printa()?");
+ }
+
dt_cg(yypcb, dnp->dn_args);
/*
diff --git a/lib/libdtrace/common/dt_decl.c b/lib/libdtrace/common/dt_decl.c
index d2a0b29..563c005 100644
--- a/lib/libdtrace/common/dt_decl.c
+++ b/lib/libdtrace/common/dt_decl.c
@@ -21,6 +21,7 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
*/
#include <strings.h>
@@ -251,11 +252,6 @@ dt_decl_spec(ushort_t kind, char *name)
ddp->dd_kind = kind;
ddp->dd_name = name;
- if (name != NULL && strchr(name, '`') != NULL) {
- xyerror(D_DECL_SCOPE, "D scoping operator may not be used "
- "in a type name\n");
- }
-
return (dt_decl_check(ddp));
}
diff --git a/lib/libdtrace/common/dt_errtags.h b/lib/libdtrace/common/dt_errtags.h
index 0a9e7c0..0dd34e4 100644
--- a/lib/libdtrace/common/dt_errtags.h
+++ b/lib/libdtrace/common/dt_errtags.h
@@ -190,8 +190,10 @@ typedef enum {
D_PRINTA_AGGPROTO, /* printa() aggregation mismatch */
D_TRACE_VOID, /* trace() argument has void type */
D_TRACE_DYN, /* trace() argument has dynamic type */
+ D_TRACE_AGG, /* trace() argument is an aggregation */
D_PRINT_VOID, /* print() argument has void type */
D_PRINT_DYN, /* print() argument has dynamic type */
+ D_PRINT_AGG, /* print() argument is an aggregation */
D_TRACEMEM_ADDR, /* tracemem() address bad type */
D_TRACEMEM_SIZE, /* tracemem() size bad type */
D_TRACEMEM_ARGS, /* tracemem() illegal number of args */
OpenPOWER on IntegriCloud