Skip to content

Conversation

emaxx-google
Copy link

Only consider typedefs that depend on other typedefs in replace-dependent-typedef.

This prevents the pass from reporting a success when no actual change has been made, like in the case when a typedef belongs to and refers to a template struct (where multiple possible string representations may confuse the checks).

This fixes #279.

Only consider typedefs that depend on other typedefs in
replace-dependent-typedef.

This prevents the pass from reporting a success when no actual
change has been made, like in the case when a typedef belongs to
and refers to a template struct (where multiple possible string
representations may confuse the checks).

This fixes csmith-project#279.
@eeide eeide added the bug label Jan 16, 2025
emaxx-google added a commit to marxin/cvise that referenced this pull request Aug 13, 2025
Only consider typedefs that depend on other typedefs in
replace-dependent-typedef.

This prevents the pass from reporting a success when no actual change
has been made, like in the case when a typedef belongs to and refers to
a template struct (where multiple possible string representations may
confuse the checks).

This fixes the problem with this heuristic highlighted in #156.

Note: essentially the same change was originally proposed in the upstream -
C-Reduce - however that project seems unmaintained at the moment:
csmith-project/creduce#281
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

replace-dependent-typedef breaks on typedef in template struct
3 participants