1 // RUN
: %clang_analyze_cc1 -triple amdgcn-unknown-unknown -analyze -analyzer-checker
=core %s
3 // expected-no-diagnostics
5 // This test case covers an issue found in the static analyzer
6 // solver where pointer sizes were assumed. Pointer sizes may vary on other
7 // architectures. This issue was originally discovered on a downstream
,
8 // custom target
, this assert occurs on the custom target and this one
9 // without the fix
, and is fixed with this change.
11 // The assertion appears to be happening as a result of evaluating the
12 // SymIntExpr
(reg_$
0<int
* p
>) != 0U in VisitSymIntExpr located in
13 // SimpleSValBuilder.cpp. The LHS is evaluated to
32b and the RHS is
14 // evaluated to
16b. This eventually leads to the assertion in APInt.h.
16 // APInt.h
:1151: bool llvm
::APInt
::operator
==(const llvm
::APInt
&) const
: Assertion
`BitWidth
== RHS.BitWidth
&& "Comparison requires equal bit widths"'
18 void test1
(__attribute__((address_space(256))) int
* p
) {
19 __attribute__
((address_space(256))) int
* q
= p-1
;
25 void test2
(__attribute__((address_space(256))) int
* p
) {
26 __attribute__
((address_space(256))) int
* q
= p-1
;