Bug 199061 - Sparse IR does not provide enough information for value pseudos (PSEUDO_VAL) in certain situations
Summary: Sparse IR does not provide enough information for value pseudos (PSEUDO_VAL) ...
Status: RESOLVED CODE_FIX
Alias: None
Product: Tools
Classification: Unclassified
Component: Sparse (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Tools-Sparse Virtual Assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-03-08 22:00 UTC by Dibyendu Majumdar
Modified: 2018-11-19 22:50 UTC (History)
1 user (show)

See Also:
Kernel Version: N/A
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Dibyendu Majumdar 2018-03-08 22:00:52 UTC
Sparse IR generates a type of pseudo known as PSEUDO_VAL. This represents an integer value of size up to 64-bits (long long). Both pointers and integer values may be represented using such pseudos.

Normally the associated Sparse IR instruction provides additional information such as type / size / signedness, etc. However in certain conditions such as when calling a variadic function, there may not be any information available other than the value itself; this can mean that when calling variadic functions, a backend code generator such as sparse-llvm, does not know the intended size of the argument, and cannot emit code correctly.

For previous discussion of this issue please see:

https://marc.info/?l=linux-sparse&m=151060861909217&w=2

https://marc.info/?l=linux-sparse&m=148968793623434&w=2

https://marc.info/?l=linux-sparse&m=148969555725868&w=2

https://marc.info/?l=linux-sparse&m=148924738713657&w=2

https://marc.info/?l=linux-sparse&m=148852426115193&w=2
Comment 1 Luc Van Oostenryck 2018-11-19 22:50:00 UTC
Do you know of any other conditions than the variadic args?

Note You need to log in before you can comment on or make changes to this bug.