[EXT_EP-11205] c7x_scalable.h template element_count_of does not support const types Created: 23/Jun/23  Updated: 03/Nov/23  Resolved: 10/Jul/23

Status: Fixed
Project: Embedded Software & Tools
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Medium
Reporter: TI User Assignee: TI User
Resolution: Fixed Votes: 0
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Product: Code Generation Tools
Internal ID: CODEGEN-11232
Forum URL: https://e2e.ti.com/support/processors-group/processors/f/791/t/1240801
Found In Release: C7000_2.1.0.LTS
C7000_3.1.0.LTS
Fix In Release: C7000_2.1.3.LTS*
C7000_3.1.1.LTS*
C7000_4.0.0.STS*
Affected Platform/Device: default

 Description   

The attached test case has these lines ...

      char4 regular_vec = char4(1);
const char4 const_vec   = char4(2);

void fxn()
{
   PrintVector("regular_vec", regular_vec);  // builds clean
   PrintVector("const_vec",   const_vec);    // gets error diagnostic
}

PrintVector is a template with this line in it ...

    int count = c7x::element_count_of<T>::value;

Build it ...

% cl7x file.cpp
"file.cpp", line 10: error: class "c7x::element_count_of<const char4>" has no member "value"
          detected during instantiation of "void PrintVector(std::__2::string, T &) [with T=const char4]" at line 28
1 error detected in the compilation of "file.cpp".

>> Compilation failure

Generated at Mon Apr 14 01:00:01 CDT 2025 using Jira 9.12.17#9120017-sha1:aba4002bcd633f188b6a4bb5dd8a0e1f20b79ee4.