Skip to content

Visual Studio rejects pointer arithmetic and dereferencing of void* #6674

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
Feb 16, 2022

Conversation

tautschnig
Copy link
Collaborator

Pointer arithmetic using void* is a (document) GCC extension.
Dereferencing void* pointers is permitted by GCC when the value is
unused. Visual Studio rejects both.

Fixes: #5275

  • 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 Feb 15, 2022

Codecov Report

Merging #6674 (674a8f0) into develop (3f9f055) will decrease coverage by 0.00%.
The diff coverage is 50.00%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #6674      +/-   ##
===========================================
- Coverage    76.81%   76.81%   -0.01%     
===========================================
  Files         1582     1582              
  Lines       182762   182774      +12     
===========================================
+ Hits        140397   140400       +3     
- Misses       42365    42374       +9     
Impacted Files Coverage Δ
src/ansi-c/c_typecheck_expr.cpp 76.45% <50.00%> (-0.15%) ⬇️
src/util/signal_catcher.cpp 84.61% <0.00%> (-11.54%) ⬇️

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 12ef9e7...674a8f0. Read the comment docs.

@kroening kroening assigned tautschnig and unassigned kroening and chris-ryder Feb 16, 2022
@tautschnig tautschnig force-pushed the bugfixes/5275-void-indexing branch 3 times, most recently from 513aa97 to e8e9288 Compare February 16, 2022 14:49
Pointer arithmetic using void* is a (document) GCC extension.
Dereferencing void* pointers is permitted by GCC when the value is
unused. Visual Studio rejects both.

This required updates to tests to either not rely on pointer arithmetic
over void*, or restrict tests to GCC only.

Fixes: diffblue#5275
@tautschnig tautschnig force-pushed the bugfixes/5275-void-indexing branch from e8e9288 to 674a8f0 Compare February 16, 2022 16:11
@tautschnig tautschnig merged commit 1080730 into diffblue:develop Feb 16, 2022
@tautschnig tautschnig deleted the bugfixes/5275-void-indexing branch February 16, 2022 20:55
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.

CBMC does not warn when indexing off a void*
3 participants