Skip to content

Conversation

@tautschnig
Copy link
Collaborator

We typecheck this via the same code path as the C front-end, and just
need to accept that this type exists.

Clang-14 uses _Complex in system headers, and moving to Ubuntu 22.04
GitHub runners requires fixing this first.

  • Each commit message has a non-empty body, explaining why the change was made.
  • n/a Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
  • n/a The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
  • Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
  • n/a My commit message includes data points confirming performance improvements (if claimed).
  • My PR is restricted to a single feature or bugfix.
  • n/a White-space or formatting changes outside the feature-related changed lines are in commits of their own.

We typecheck this via the same code path as the C front-end, and just
need to accept that this type exists.

Clang-14 uses _Complex in system headers, and moving to Ubuntu 22.04
GitHub runners requires fixing this first.
type.id() == ID_constructor || type.id() == ID_destructor || type.id() == ID_c_enum)
{
}
else if(type.id()==ID_c_enum)
Copy link
Collaborator

Choose a reason for hiding this comment

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

This change seems unrelated to _Complex?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Indeed, see the last sentence of the commit message in the second commit. It's drive-by cleanup while debugging to eventually make it possible to successfully pass the regression test that the second commit enables. (That regression test ensures we have coverage of the changes in the first commit.)

C typecheck_type performs its own conversion of raw type structures, and
can't deal with those already done by the C++ front-end. Therefore,
restored the "merged_type" before handing off to the C front-end.

Also clean up unnecessary enum conversion steps, which later type
checking stages actually take care of.
@codecov
Copy link

codecov bot commented May 19, 2022

Codecov Report

Merging #6868 (12354e4) into develop (ab7e173) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff            @@
##           develop    #6868   +/-   ##
========================================
  Coverage    77.79%   77.80%           
========================================
  Files         1567     1567           
  Lines       179750   179756    +6     
========================================
+ Hits        139844   139852    +8     
+ Misses       39906    39904    -2     
Impacted Files Coverage Δ
src/cpp/cpp_convert_type.cpp 73.41% <100.00%> (-0.16%) ⬇️
src/cpp/cpp_typecheck_type.cpp 75.75% <100.00%> (+1.35%) ⬆️
src/cpp/parse.cpp 68.78% <0.00%> (+0.03%) ⬆️
src/ansi-c/c_typecheck_type.cpp 77.19% <0.00%> (+0.11%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 58f9a9d...12354e4. Read the comment docs.

@kroening kroening merged commit c83acfb into diffblue:develop May 22, 2022
@tautschnig tautschnig deleted the bugfixes/complex branch May 23, 2022 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants