Blob Blame Raw
--- ./apps/graph/src/Makefile.inc.orig	2014-10-13 06:14:22.000000000 -0600
+++ ./apps/graph/src/Makefile.inc	2015-03-05 20:00:00.000000000 -0700
@@ -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
 
--- ./lib/core/include/perl/Value.h.orig	2014-10-13 06:14:22.000000000 -0600
+++ ./lib/core/include/perl/Value.h	2015-02-26 21:00:00.000000000 -0700
@@ -646,7 +646,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;
@@ -1016,9 +1016,8 @@ public:
       typedef typename object_traits<Source>::persistent_type Persistent;
       if (type_cache<Source>::magic_allowed(prescribed_pkg)) {
          if (fup && !object_traits<Source>::is_lazy) {
-            const char* const flo=frame_lower_bound();
             const char* const val=reinterpret_cast<const char*>(&x);
-            if ((val<flo)==(val<fup)) {
+            if (not_on_stack(val,fup)) {
                // the wrapped function has returned a reference to an object stored elsewhere
                return store_magic_ref(x, is_masquerade<Source>(), bool2type<object_traits<Source>::is_lazy>(), identical<Source,Persistent>());
             }
@@ -1086,9 +1085,8 @@ public:
    typename enable_if<Anchor*, list_contains<primitive_lvalues, Source>::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<const char*>(&x);
-      Anchor* anchor=store_primitive_ref(x, type_cache<Source>::get_descr(), (val<flo)==(val<fup));
+      Anchor* anchor=store_primitive_ref(x, type_cache<Source>::get_descr(), not_on_stack(val,fup));
       if (owner) get_temp();
       return anchor;
    }
--- ./lib/core/src/perl/RefHash.xs.orig	2014-11-08 20:00:00.000000000 -0700
+++ ./lib/core/src/perl/RefHash.xs	2015-03-06 12:30:00.000000000 -0700
@@ -146,10 +146,10 @@ OP* intercept_pp_helem(pTHX)
    SV *keysv=TOPs;
    HV *hv=(HV*)TOPm1s, *class=SvSTASH(hv);
    MAGIC *mg;
+   tmp_keysv tmp_key;
    if (HashCPPbound(hv))
       return pm_perl_cpp_helem(aTHX_ hv, mg);
    if (SvROK(keysv)) {
-      tmp_keysv tmp_key;
       if (!RefKeyAllowed(hv,class))
          DIE(aTHX_ err_ref);
       if ((PL_op->op_private & (OPpLVAL_INTRO | OPpLVAL_DEFER)) == OPpLVAL_INTRO &&
--- ./lib/core/src/perl/Value.cc.orig	2014-10-13 06:14:22.000000000 -0600
+++ ./lib/core/src/perl/Value.cc	2015-02-26 21:00:00.000000000 -0700
@@ -258,11 +258,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<fup);
 }
 
 long Value::int_value() const