diff options
Diffstat (limited to 'refs/files-backend.c')
| -rw-r--r-- | refs/files-backend.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c index 2c89e87d3e..b2de84fa69 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -3291,7 +3291,13 @@ static int files_transaction_finish(struct ref_store *ref_store,  		 * next update. If not, we try and create a regular symref.  		 */  		if (update->new_target && refs->prefer_symlink_refs) -			if (!create_ref_symlink(lock, update->new_target)) +			/* +			 * By using the `NOT_CONSTANT()` trick, we can avoid +			 * errors by `clang`'s `-Wunreachable` logic that would +			 * report that the `continue` statement is not reachable +			 * when `NO_SYMLINK_HEAD` is `#define`d. +			 */ +			if (NOT_CONSTANT(!create_ref_symlink(lock, update->new_target)))  				continue;  		if (update->flags & REF_NEEDS_COMMIT) {  | 
