https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=277236
John F. Carr <j...@mit.edu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |j...@mit.edu --- Comment #2 from John F. Carr <j...@mit.edu> --- My first impression is clang is within its rights to break this code. The JS implementation tries to store metadata bits in the low bits of a pointer type. The compiler is allowed to assume that the low bits of a pointer value are zero. (Assuming the pointed-to type has alignment rules, which is normally the case.) LLVM itself uses a wrapper class instead of an illegal pointer value. The wrapper class stores the pointer+tag combination as an integer and provides a getter method to return an untagged pointer. -- You are receiving this mail because: You are the assignee for the bug.