* 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 1fcee2afcbd3c2a1454e8e17c4392c1ccefe1b44..244118bbf25e4f75d1643073743861206b76d069 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 b137a60a85a63ada4f98d665cba77826ac2f4130..927f3e51f659cacca8f1a768dd2baffd3d67e4ca 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;            \