You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Following r315984, one of our internal tests started to fail with the following error from the compiler:
Offset not zero at the point of scalar access
%2 = load float, float* %india, align 4, !tbaa !6
!6 = !{#7, !9, i64 4}
4
fatal error: error in backend: Broken function found, compilation aborted!
You can reproduce this by compiling the following code with optimization’s enabled:
Clang -cc1 -emit-obj -O2 reduced.cpp
Where reduced.cpp is the following code:
/* reduced.cpp /
class alpha;
namespace bravo {
namespace charlie {
void delta(alpha element, char* name, float var);
}
namespace foxtrot {
class gulf { public: float hotel; float india; };
class juliet { public: gulf kilo[4]; };
}
namespace charlie {
class lima { public: bravo::foxtrot::juliet mike; };
void november( alpha* oscar, lima * papa ) {
alpha* quebec ;
delta(quebec, "romeo", papa->mike.kilo->india);
}
}
}
Thanks to Sunil for helping reduce this test for me.
The text was updated successfully, but these errors were encountered:
Extended Description
Following r315984, one of our internal tests started to fail with the following error from the compiler:
Offset not zero at the point of scalar access
%2 = load float, float* %india, align 4, !tbaa !6
!6 = !{#7, !9, i64 4}
4
fatal error: error in backend: Broken function found, compilation aborted!
You can reproduce this by compiling the following code with optimization’s enabled:
Clang -cc1 -emit-obj -O2 reduced.cpp
Where reduced.cpp is the following code:
/* reduced.cpp /
class alpha;
namespace bravo {
namespace charlie {
void delta(alpha element, char* name, float var);
}
namespace foxtrot {
class gulf { public: float hotel; float india; };
class juliet { public: gulf kilo[4]; };
}
namespace charlie {
class lima { public: bravo::foxtrot::juliet mike; };
void november( alpha* oscar, lima * papa ) {
alpha* quebec ;
delta(quebec, "romeo", papa->mike.kilo->india);
}
}
}
Thanks to Sunil for helping reduce this test for me.
The text was updated successfully, but these errors were encountered: