Displaying 2 results from an estimated 2 matches for "_z4copypvs_".
2019 Sep 27
3
DenseMap/ValueMap: is M[New]=M[Old] valid ?
...ue type,
and different forms of the assignment expression (where one form of the
expression helped for Clang but not for GCC).
The core part of the testcase is this:
void copy(void *a, void *b) {
GlobalMap[a] = GlobalMap[b];
}
When compiled with Clang, ends up like this:
define void @_Z4copyPvS_(i8*, i8*) #1 {
%3 = alloca i8*, align 8
%4 = alloca i8*, align 8
store i8* %0, i8** %3, align 8
store i8* %1, i8** %4, align 8
%5 = call dereferenceable(8) i8** @_ZN4llvm12DenseMapBaseINS_8DenseMapIPvS2_NS_12DenseMapInfoIS2_EENS_6detail12DenseMapPairIS2_S2_EEEES2_S2_S4_S7_EixERKS2_(%...
2019 Sep 27
2
DenseMap/ValueMap: is M[New]=M[Old] valid ?
I actually ran into an elusive bug with this exact same issue some time
ago as well, see https://bugs.llvm.org/show_bug.cgi?id=42065 and
https://reviews.llvm.org/D62624.
The strange thing about that bug was that it only showed up if built with
GCC; Clang dereferenced the right hand side reference before evaluating
the left hand side, as long as the value type was as small as the
reference