diff -up ./apps/graph/src/Makefile.inc.gcc5 ./apps/graph/src/Makefile.inc --- ./apps/graph/src/Makefile.inc.gcc5 2015-03-04 07:51:50.000000000 -0500 +++ ./apps/graph/src/Makefile.inc 2015-08-10 14:08:20.317114094 -0400 @@ -1,4 +1,4 @@ -ifneq ($(filter 4.8% 4.9%,${GCCversion}),) +ifneq ($(filter 4.8% 4.9% 5%,${GCCversion}),) bipartite_signature$O : ExtraCXXFLAGS += -O1 endif diff -up ./lib/core/include/perl/Value.h.gcc5 ./lib/core/include/perl/Value.h --- ./lib/core/include/perl/Value.h.gcc5 2015-03-04 07:51:50.000000000 -0500 +++ ./lib/core/include/perl/Value.h 2015-08-10 14:08:20.317114094 -0400 @@ -655,7 +655,7 @@ protected: , options(value_not_trusted) {} - static const char* frame_lower_bound(); + static bool not_on_stack(const char *val, const char *fup); bool is_defined() const; bool is_TRUE() const; @@ -1044,9 +1044,8 @@ public: typedef typename object_traits::persistent_type Persistent; if (type_cache::magic_allowed(prescribed_pkg)) { if (fup && !object_traits::is_lazy) { - const char* const flo=frame_lower_bound(); const char* const val=reinterpret_cast(&x); - if ((val(), bool2type::is_lazy>(), identical()); } @@ -1114,9 +1113,8 @@ public: typename enable_if::value>::type put_lval(const Source& x, const char* fup, int, const Value* owner, OwnerType*) { - const char* const flo=frame_lower_bound(); const char* const val=reinterpret_cast(&x); - Anchor* anchor=store_primitive_ref(x, type_cache::get_descr(), (val::get_descr(), not_on_stack(val,fup)); if (owner) get_temp(); return anchor; } diff -up ./lib/core/src/perl/RefHash.xs.gcc5 ./lib/core/src/perl/RefHash.xs diff -up ./lib/core/src/perl/Value.cc.gcc5 ./lib/core/src/perl/Value.cc --- ./lib/core/src/perl/Value.cc.gcc5 2015-03-04 07:51:50.000000000 -0500 +++ ./lib/core/src/perl/Value.cc 2015-08-10 14:08:20.318114087 -0400 @@ -283,11 +283,10 @@ void ListReturn::upgrade(int size) EXTEND(SP, size); } -const char* Value::frame_lower_bound() +bool Value::not_on_stack(const char *val, const char *fup) { char c=0; - const char* flo=&c; - return flo; + return (val<&c) == (val