00001
00002
00003
00004 #include <stdio.h>
00005 #include <stdarg.h>
00006 #include "bddint.h"
00007
00008 #if STDC_HEADERS
00009 # include <stdlib.h>
00010 #else
00011 # if defined(__STDC__)
00012 extern void exit(int);
00013 # else
00014 extern void exit();
00015 # endif
00016 #endif
00017
00018
00019
00020
00021 void
00022 cmu_bdd_warning(char *message)
00023 {
00024 fprintf(stderr, "BDD library: warning: %s\n", message);
00025 }
00026
00027
00028
00029
00030 void
00031 cmu_bdd_fatal(char *message)
00032 {
00033 fprintf(stderr, "BDD library: error: %s\n", message);
00034 exit(1);
00035
00036 }
00037
00038
00039 int
00040 bdd_check_arguments(int count, ...)
00041 {
00042 int all_valid;
00043 va_list ap;
00044 bdd f;
00045
00046 va_start(ap, count);
00047 all_valid=1;
00048 while (count)
00049 {
00050 f=va_arg(ap, bdd);
00051 {
00052 BDD_SETUP(f);
00053 if (!f)
00054 all_valid=0;
00055 else if (BDD_REFS(f) == 0)
00056 cmu_bdd_fatal("bdd_check_arguments: argument has zero references");
00057 }
00058 --count;
00059 }
00060 return (all_valid);
00061 }
00062
00063
00064 void
00065 bdd_check_array(bdd *fs)
00066 {
00067 while (*fs)
00068 {
00069 bdd_check_arguments(1, *fs);
00070 ++fs;
00071 }
00072 }