summaryrefslogtreecommitdiff
path: root/pidl
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2009-10-13 10:03:27 +1100
committerAndrew Tridgell <tridge@samba.org>2009-10-13 10:03:27 +1100
commitdfbaf79a1b7455a0eef61813e07cb661cf17e995 (patch)
tree04f726cc4e888f8a6591d036274fd82d6b568db0 /pidl
parent3ecfd06d64cf91098ec33c33a003d7f5b5c1b71d (diff)
downloadsamba-dfbaf79a1b7455a0eef61813e07cb661cf17e995.tar.gz
pidl: don't warn for compatible scalar types in unions
When we have an enum that is used as a union discriminator, what matters is that the scalar mappings are the same, not if the types are the same (otherwise we get warnings about uint1632). Thanks to gd for noticing this.
Diffstat (limited to 'pidl')
-rw-r--r--pidl/lib/Parse/Pidl/NDR.pm6
1 files changed, 3 insertions, 3 deletions
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm
index 249b778389d..4e680b336f1 100644
--- a/pidl/lib/Parse/Pidl/NDR.pm
+++ b/pidl/lib/Parse/Pidl/NDR.pm
@@ -39,7 +39,7 @@ $VERSION = '0.01';
use strict;
use Parse::Pidl qw(warning fatal);
-use Parse::Pidl::Typelist qw(hasType getType expandAlias);
+use Parse::Pidl::Typelist qw(hasType getType expandAlias mapScalarType);
use Parse::Pidl::Util qw(has_property property_matches);
# Alignment of the built-in scalar types
@@ -1010,13 +1010,13 @@ sub ValidElement($)
my $discriminator_type = has_property($type->{DATA}, "switch_type");
$discriminator_type = "uint32" unless defined ($discriminator_type);
- my $t1 = mapToScalar($discriminator_type);
+ my $t1 = mapScalarType(mapToScalar($discriminator_type));
if (not defined($t1)) {
fatal($e, el_name($e) . ": unable to map discriminator type '$discriminator_type' to scalar");
}
- my $t2 = mapToScalar($e2->{TYPE});
+ my $t2 = mapScalarType(mapToScalar($e2->{TYPE}));
if (not defined($t2)) {
fatal($e, el_name($e) . ": unable to map variable used for switch_is() to scalar");
}