@@ -596,6 +596,7 @@ class TestSymbolDatabase : public TestFixture {
596
596
597
597
TEST_CASE (incomplete_type); // #9255 (infinite recursion)
598
598
TEST_CASE (exprIds);
599
+ TEST_CASE (testValuetypeOriginalName);
599
600
}
600
601
601
602
void array () {
@@ -10821,6 +10822,34 @@ class TestSymbolDatabase : public TestFixture {
10821
10822
ASSERT_EQUALS (true , testExprIdNotEqual (code, " (" , 3U , " (" , 4U ));
10822
10823
}
10823
10824
}
10825
+
10826
+ void testValuetypeOriginalName () {
10827
+ {
10828
+ GET_SYMBOL_DB (" typedef void ( *fp16 )( int16_t n );\n "
10829
+ " typedef void ( *fp32 )( int32_t n );\n "
10830
+ " void R_11_1 ( void ) {\n "
10831
+ " fp16 fp1 = NULL;\n "
10832
+ " fp32 fp2 = ( fp32) fp1;\n "
10833
+ " }\n " );
10834
+ const Token* tok = Token::findsimplematch (tokenizer.tokens (), " ( void * ) fp1" );
10835
+ ASSERT_EQUALS (tok->isCast (), true );
10836
+ ASSERT (tok->valueType ());
10837
+ ASSERT (tok->valueType ()->originalTypeName == " fp32" );
10838
+ ASSERT (tok->valueType ()->pointer == 1 );
10839
+ ASSERT (tok->valueType ()->constness == 0 );
10840
+ }
10841
+
10842
+ {
10843
+ GET_SYMBOL_DB (" typedef void ( *fp16 )( int16_t n );\n "
10844
+ " fp16 fp3 = ( fp16 ) 0x8000;" );
10845
+ const Token* tok = Token::findsimplematch (tokenizer.tokens (), " ( void * ) 0x8000" );
10846
+ ASSERT_EQUALS (tok->isCast (), true );
10847
+ ASSERT (tok->valueType ());
10848
+ ASSERT (tok->valueType ()->originalTypeName == " fp16" );
10849
+ ASSERT (tok->valueType ()->pointer == 1 );
10850
+ ASSERT (tok->valueType ()->constness == 0 );
10851
+ }
10852
+ }
10824
10853
};
10825
10854
10826
10855
REGISTER_TEST (TestSymbolDatabase)
0 commit comments