VMS: Disable the warning MAYLOSEDATA3
The warning MAYLOSEDATA3 is one you will always get when compiling source that calculates the difference between two pointers with /POINTER_SIZE=64. The reason is quite simple, ptrdiff_t is always a 32-bit integer regardless of pointer size, so the result of 'ptr1 - ptr2' can potentially be larger than a 32-bit integer. The compiler simply warns you of that possibility. However, we only use pointer difference within objects and strings, all of them well within 2^32 bytes in size, so that operation is harmless with our source, and we can therefore safely turn off that warning. Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
85112d53c5
commit
5fe5bc3094
1 changed files with 58 additions and 12 deletions
|
@ -74,6 +74,20 @@ sub vc_wince_info {
|
||||||
return $vc_wince_info;
|
return $vc_wince_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Helper functions for the VMS configs
|
||||||
|
my $vms_info = {};
|
||||||
|
sub vms_info {
|
||||||
|
unless (%$vms_info) {
|
||||||
|
$vms_info->{disable_warns} = [ ];
|
||||||
|
$vms_info->{disable_warns_p32} = [ ];
|
||||||
|
$vms_info->{disable_warns_p64} = [ ];
|
||||||
|
`PIPE CC /NOCROSS_REFERENCE /NOLIST /NOOBJECT /WARNINGS = DISABLE = ( MAYLOSEDATA3, EMPTYFILE ) NL: 2> NL:`;
|
||||||
|
if ($? == 0) {
|
||||||
|
push @{$vms_info->{disable_warns_p64}}, "MAYLOSEDATA3";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $vms_info;
|
||||||
|
}
|
||||||
|
|
||||||
%targets = (
|
%targets = (
|
||||||
|
|
||||||
|
@ -1726,37 +1740,69 @@ sub vc_wince_info {
|
||||||
#},
|
#},
|
||||||
"vms-alpha" => {
|
"vms-alpha" => {
|
||||||
inherit_from => [ "vms-generic" ],
|
inherit_from => [ "vms-generic" ],
|
||||||
|
cflags => sub { my @warnings =
|
||||||
|
@{vms_info()->{disable_warns}};
|
||||||
|
@warnings
|
||||||
|
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); },
|
||||||
#as => "???",
|
#as => "???",
|
||||||
#debug_aflags => "/NOOPTIMIZE/DEBUG",
|
#debug_aflags => "/NOOPTIMIZE/DEBUG",
|
||||||
#release_aflags => "/OPTIMIZE/NODEBUG",
|
#release_aflags => "/OPTIMIZE/NODEBUG",
|
||||||
bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
|
bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
|
||||||
},
|
},
|
||||||
"vms-alpha-p32" => {
|
"vms-alpha-p32" => {
|
||||||
inherit_from => [ "vms-alpha" ],
|
inherit_from => [ "vms-alpha" ],
|
||||||
cflags => add("/POINTER_SIZE=32"),
|
cflags =>
|
||||||
ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
|
add("/POINTER_SIZE=32",
|
||||||
|
sub { my @warnings =
|
||||||
|
@{vms_info()->{disable_warns_p32}};
|
||||||
|
@warnings
|
||||||
|
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
|
||||||
|
} ),
|
||||||
|
ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
|
||||||
},
|
},
|
||||||
"vms-alpha-p64" => {
|
"vms-alpha-p64" => {
|
||||||
inherit_from => [ "vms-alpha" ],
|
inherit_from => [ "vms-alpha" ],
|
||||||
cflags => add("/POINTER_SIZE=64"),
|
cflags =>
|
||||||
ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
|
add("/POINTER_SIZE=64",
|
||||||
|
sub { my @warnings =
|
||||||
|
@{vms_info()->{disable_warns_p64}};
|
||||||
|
@warnings
|
||||||
|
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
|
||||||
|
} ),
|
||||||
|
ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
|
||||||
},
|
},
|
||||||
"vms-ia64" => {
|
"vms-ia64" => {
|
||||||
inherit_from => [ "vms-generic" ],
|
inherit_from => [ "vms-generic" ],
|
||||||
|
cflags => sub { my @warnings =
|
||||||
|
@{vms_info()->{disable_warns}};
|
||||||
|
@warnings
|
||||||
|
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : (); },
|
||||||
#as => "I4S",
|
#as => "I4S",
|
||||||
#debug_aflags => "/NOOPTIMIZE/DEBUG",
|
#debug_aflags => "/NOOPTIMIZE/DEBUG",
|
||||||
#release_aflags => "/OPTIMIZE/NODEBUG",
|
#release_aflags => "/OPTIMIZE/NODEBUG",
|
||||||
bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
|
bn_opts => "SIXTY_FOUR_BIT RC4_INT RC4_CHUNK_LL DES_PTR BF_PTR",
|
||||||
},
|
},
|
||||||
"vms-ia64-p32" => {
|
"vms-ia64-p32" => {
|
||||||
inherit_from => [ "vms-ia64" ],
|
inherit_from => [ "vms-ia64" ],
|
||||||
cflags => add("/POINTER_SIZE=32"),
|
cflags =>
|
||||||
ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
|
add("/POINTER_SIZE=32",
|
||||||
|
sub { my @warnings =
|
||||||
|
@{vms_info()->{disable_warns_p32}};
|
||||||
|
@warnings
|
||||||
|
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
|
||||||
|
} ),
|
||||||
|
ex_libs => sub { join(",", map { s|SHR([\./])|SHR32$1|g; $_ } @_) },
|
||||||
},
|
},
|
||||||
"vms-ia64-p64" => {
|
"vms-ia64-p64" => {
|
||||||
inherit_from => [ "vms-ia64" ],
|
inherit_from => [ "vms-ia64" ],
|
||||||
cflags => add("/POINTER_SIZE=64"),
|
cflags =>
|
||||||
ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
|
add("/POINTER_SIZE=64",
|
||||||
|
sub { my @warnings =
|
||||||
|
@{vms_info()->{disable_warns_p64}};
|
||||||
|
@warnings
|
||||||
|
? "/WARNINGS=DISABLE=(".join(",",@warnings).")" : ();
|
||||||
|
} ),
|
||||||
|
ex_libs => sub { join(",", map { s|SHR([\./])|SHR64$1|g; $_ } @_) },
|
||||||
},
|
},
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue