r19830: Warn about non-ref top-level pointers.
authorJelmer Vernooij <jelmer@samba.org>
Tue, 21 Nov 2006 23:21:08 +0000 (23:21 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:28:21 +0000 (14:28 -0500)
(This used to be commit 78153200ac45ce7333c91c48ded549b5eed5e077)

source4/pidl/lib/Parse/Pidl/NDR.pm

index a80bb954c1e916829f304f4703d353da7b2a63f8..d017c455a6b484059f1d382bc288621da7631707 100644 (file)
@@ -70,8 +70,6 @@ my $scalar_alignment = {
        'ipv4address' => 4
 };
 
-
-
 sub nonfatal($$)
 {
        my ($e,$s) = @_;
@@ -135,8 +133,7 @@ sub GetElementLevelTable($)
                                $is_string = 1;
                                delete($e->{PROPERTIES}->{string});
                        } else {
-                               print "$e->{FILE}:$e->{LINE}: Must specify size_is() for conformant array!\n";
-                               exit 1;
+                               fatal($e, "Must specify size_is() for conformant array!")
                        }
 
                        if (($length = shift @length_is) or $is_string) {
@@ -184,6 +181,10 @@ sub GetElementLevelTable($)
                        LEVEL => $level
                });
 
+               nonfatal($e, "top-level pointer `$e->{NAME}' is not a \[ref\] pointer") 
+                       if ($i == 1 and pointer_type($e) ne "ref" and 
+                               $e->{PARENT}->{TYPE} eq "FUNCTION");
+
                $pointer_idx++;
                
                # everything that follows will be deferred