I was tempted to change those to >= 0 until I saw that this is
actually a for loop that terminates once i underflows.
size_t i;
int elem;
+ /* the < condition is required since i underflows! */
for(i = glob->size - 1; i < glob->size; --i) {
if((glob->pattern[i].type == UPTSet) &&
(glob->pattern[i].content.Set.elements)) {
/* implement a counter over the index ranges of all patterns,
starting with the rightmost pattern */
+ /* the < condition is required since i underflows! */
for(i = glob->size - 1; carry && (i < glob->size); --i) {
carry = FALSE;
pat = &glob->pattern[i];