C6000 compiler reports error where it should not


I have problem with error reported by C6000 compiler when compiling following code:

#define AVOID_BUG1

#include <boost/container/map.hpp>
#include <boost/container/vector.hpp>

#if !defined(AVOID_BUG1)
namespace bug1 {

struct no_operator { };

// this class allows implicit conversions and makes the following operator
// definition less-preferred than any other such operators that might be found
// via argument-dependent name lookup
struct any { template <class T> any(T const&); };

// when operator BOOST_TT_TRAIT_OP is not available, this one is used
no_operator operator && (const any&, const any&);

} // bug1

namespace cont = boost::container;

typedef cont::multimap<int,int> Map;
typedef Map::const_iterator T;
typedef cont::vector<T> V;

void f()
    V v;
    T t = T();

I think it is compiler defect.

I reproduced this error with cgtools: 7.3.6 and 7.4.2. I am using CCSv5.2.0.00069, SYS/BIOS and simulator C66xxSim.ccxml - C64x+ CPU Cycle Accurate Simulator, Little Endian.

Use case file bug1.cpp


Error message from compilers 7.3.6 and 7.4.2 - both the same.