* cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Abort if this
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 4 Jul 2006 05:59:05 +0000 (05:59 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 4 Jul 2006 05:59:05 +0000 (05:59 +0000)
macro is used before the first cycle_check call.

lib/ChangeLog
lib/cycle-check.h

index 1fcee2a..244118b 100644 (file)
@@ -1,3 +1,8 @@
+2006-07-03  Jim Meyering  <jim@meyering.net>
+
+       * cycle-check.h (CYCLE_CHECK_REFLECT_CHDIR_UP): Abort if this
+       macro is used before the first cycle_check call.
+
 2006-07-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        * stdint_.h: Include <sys/types.h> after @FULL_PATH_STDINT_H@, for
index b137a60..927f3e5 100644 (file)
@@ -45,6 +45,9 @@ bool cycle_check (struct cycle_check_state *state, struct stat const *sb);
 # define CYCLE_CHECK_REFLECT_CHDIR_UP(State, SB_dir, SB_subdir)        \
   do                                                           \
     {                                                          \
+      /* You must call cycle_check at least once before using this macro.  */ \
+      if ((State)->chdir_counter == 0)                         \
+        abort ();                                              \
       if (SAME_INODE ((State)->dev_ino, SB_subdir))            \
        {                                                       \
          (State)->dev_ino.st_dev = (SB_dir).st_dev;            \