[LLVMbugs] [Bug 483] NEW: [llvmg++] Crash in C++ parser
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Mon Dec 13 15:06:09 PST 2004
http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=483
Summary: [llvmg++] Crash in C++ parser
Product: tools
Version: 1.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: llvm-g++
AssignedTo: unassignedbugs at nondot.org
ReportedBy: sabre at nondot.org
This looks like a llvmg++ bug in the GCC Parser. To fix this we'll have to sync
up to newer CVS or find the GCC patch that fixed this:
class Late {
public:
static const int mode = 0;
};
class Early {
public:
static const int mode = 1;
};
class Time {
public:
template <typename T> Time merge_rat(Time other) {return *this;}
};
template <class V> class GenericBuffer {
protected:
V _buffer[2][2];
};
template <class V> class GenericPair {
protected:
V _buffer[2];
};
class UTimePair : public GenericPair<Time> {
};
class UTimeBuffer : public GenericBuffer<Time> {
public:
template<class EL>
inline void merge_test(const UTimePair &bias,
const UTimePair &rat);
void merge_rat(const UTimePair &delay,
const UTimePair &rat);
void merge_rat(const UTimeBuffer &delay,
const UTimeBuffer &rat);
};
template<class EL>
inline void UTimeBuffer::merge_test(const UTimePair &bias,
const UTimePair &at)
{
_buffer[EL::mode][0].template
merge_rat<EL>(Time());
}
template<class R, class S>
class USpecialArrayRef {
public:
R& operator[](int index) const;
};
struct EarlyLatePhaseWaveComplete {
UTimeBuffer _rat;
};
struct EarlyLatePhaseWaveRemaining {
};
typedef USpecialArrayRef<EarlyLatePhaseWaveComplete,
EarlyLatePhaseWaveRemaining>
EarlyLatePhaseWaveArray;
class WithTimingNodeValuesAndFlags
{
public:
typedef short WaveCount;
inline void merge_test(int el,
WaveCount index,
const UTimePair &bias,
const UTimePair &at);
template <class EL>
inline void merge_test(WaveCount index,
const UTimePair &bias,
const UTimePair &at);
EarlyLatePhaseWaveArray& earlylate_array();
};
template <>
inline void
WithTimingNodeValuesAndFlags::merge_test<Late>(WaveCount index,
const UTimePair &bias,
const UTimePair &head_at)
{
earlylate_array()[index - 1]._rat.merge_test<Late>(bias,head_at);
}
template <>
inline void
WithTimingNodeValuesAndFlags::merge_test<Early>(WaveCount index,
const UTimePair &bias,
const UTimePair &head_at)
{
}
inline void WithTimingNodeValuesAndFlags::merge_test(int el,
WaveCount index,
const UTimePair &bias,
const UTimePair &at)
{
}
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list