Skip to content

Compiler: move c2_assert to c2 #306

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Conversation

chqrlie
Copy link
Contributor

@chqrlie chqrlie commented Jun 27, 2025

  • compute the assert string and function call at parse time
  • add libc2 module in libs/libc/c2internals.c2i
  • add auto_func function parameter attribute
  • reject invalid combinations of auto_xxx attributes

@chqrlie chqrlie force-pushed the assert branch 2 times, most recently from ac7bab2 to f6f55a9 Compare June 27, 2025 20:11
@bvdberg
Copy link
Member

bvdberg commented Jun 28, 2025

It also has auto-arg changes.. please keep commits small so it's easier for me to review..

@chqrlie
Copy link
Contributor Author

chqrlie commented Jun 29, 2025

I just split this PR into 2 separate commits:

  • one for the new auto_func attribute and other attribute fixes
  • one for the c2_assert function migration to the library.


if (a.getCall()) {
qt = ma.analyseExpr(a.getCall2(), true, RHS);
if (qt.isInvalid()) return;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In which case will a.getCall() be nil?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the call expression is only constructed by the parser if asserts are enabled. The expression is always parsed and stored for the analyser.

@chqrlie chqrlie force-pushed the assert branch 3 times, most recently from 863c3f0 to b91e9ff Compare July 2, 2025 09:41
chqrlie added 2 commits July 5, 2025 11:13
* add `auto_func` function parameter attribute
* reject invalid combinations of `auto_xxx` attributes
* fix tests
* compute the assert string and function call at parse time
* add c2_assert module in C library interface libs/libc/c2_assert.c2i
* update tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants