issue251.t 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. #! /usr/bin/env perl
  2. # http://code.google.com/p/perl-compiler/issues/detail?id=251
  3. # empty cvs, exists and defined &cv
  4. use strict;
  5. BEGIN {
  6. unshift @INC, 't';
  7. require "test.pl";
  8. }
  9. use Test::More tests => 5;
  10. my $name = 'ccode251i';
  11. use B::C ();
  12. my $todo = ($B::C::VERSION ge '1.43_06') ? "" : "TODO ";
  13. ctestok(1,'C,-O3',$name,<<'EOF', $todo.'#251 simple predeclaration');
  14. sub f;$e=exists &f;$d=defined &f;print "ok" if "-$e-$d-" eq "-1--";
  15. EOF
  16. ctestok(2,'C,-O3',$name,<<'EOF', ($] >= 5.018 ? "TODO 5.18 " : "").$todo.'#251 lvalue predeclaration');
  17. sub f :lvalue;$e=exists &f;$d=defined &f;print "ok" if "-$e-$d-" eq "-1--";
  18. EOF
  19. ctestok(3,'C,-O3',$name,<<'EOF', $todo.'#251 empty proto predeclaration');
  20. sub f ();$e=exists &f;$d=defined &f;print "ok" if "-$e-$d-" eq "-1--";
  21. EOF
  22. ctestok(4,'C,-O3',$name,<<'EOF', $todo.'#251 proto predeclaration');
  23. sub f ($);$e=exists &f;$d=defined &f;print "ok" if "-$e-$d-" eq "-1--";
  24. EOF
  25. ctestok(5,'C,-O3',$name,<<'EOF', '#251 regular cv definition');
  26. sub f{1};$e=exists &f;$d=defined &f;print "ok" if "-$e-$d-" eq "-1-1-";
  27. EOF