diff options
author | mm <mm@FreeBSD.org> | 2013-02-06 08:26:55 +0000 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2013-02-06 08:26:55 +0000 |
commit | e18d44a7a853a2f216a35af4921d43250c5768b7 (patch) | |
tree | fff9c659806e60c306b6a31a129a6e8da27d4d0d /lib | |
parent | 414c26b0de3bd482361784abe2fe104af30b7b84 (diff) | |
download | FreeBSD-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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libdtrace/common/dt_cc.c | 6 | ||||
-rw-r--r-- | lib/libdtrace/common/dt_decl.c | 6 | ||||
-rw-r--r-- | lib/libdtrace/common/dt_errtags.h | 2 |
3 files changed, 9 insertions, 5 deletions
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 */ |