Skip to content

export-file-local_symbols:: update base name and pretty name #6337

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

Merged
merged 1 commit into from
Oct 24, 2022

Conversation

tautschnig
Copy link
Collaborator

@tautschnig tautschnig commented Sep 10, 2021

Name mangling via --export-file-local-symbols used to introduce symbols
the name of which did not match the base name. Forward declarations of
the mangled name, however, did introduce a symbol where (mangled) name
and base name match. When linking later found the definition
corresponding to such a forward declaration, the base name (and pretty
name) were not updated. As a consequence the order of linking produced
two different final symbol tables.

Note that Crangler may be a superior alternative avoiding such problems,
but there is ample code that still uses --export-file-local-symbols.

  • 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.

@codecov
Copy link

codecov bot commented Sep 10, 2021

Codecov Report

Base: 78.01% // Head: 78.01% // Decreases project coverage by -0.00% ⚠️

Coverage data is based on head (1f18a3d) compared to base (ddf0fd2).
Patch coverage: 66.66% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #6337      +/-   ##
===========================================
- Coverage    78.01%   78.01%   -0.01%     
===========================================
  Files         1625     1625              
  Lines       187407   187410       +3     
===========================================
+ Hits        146201   146203       +2     
- Misses       41206    41207       +1     
Impacted Files Coverage Δ
src/goto-programs/name_mangler.h 98.46% <66.66%> (-1.54%) ⬇️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@jimgrundy jimgrundy added aws Bugs or features of importance to AWS CBMC users aws-high labels Sep 10, 2021
@tautschnig
Copy link
Collaborator Author

tautschnig commented Nov 11, 2021

This should really be resolved via #6367. Will close once that's merged and considered the definitive solution. This PR now really fixes just the --export-file-local-symbols feature and does not impact anything else.

@tautschnig tautschnig changed the title Linking: update base name and pretty name of code-typed symbols export-file-local_symbols:: update base name and pretty name Oct 24, 2022
Name mangling via --export-file-local-symbols used to introduce symbols
the name of which did not match the base name. Forward declarations of
the mangled name, however, did introduce a symbol where (mangled) name
and base name match. When linking later found the definition
corresponding to such a forward declaration, the base name (and pretty
name) were not updated. As a consequence the order of linking produced
two different final symbol tables.

Note that Crangler may be a superior alternative avoiding such problems,
but there is ample code that still uses `--export-file-local-symbols`.
@peterschrammel peterschrammel removed their assignment Oct 24, 2022
@tautschnig tautschnig merged commit bbe059e into diffblue:develop Oct 24, 2022
@tautschnig tautschnig deleted the fix-6330 branch October 24, 2022 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aws Bugs or features of importance to AWS CBMC users bugfix
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants