From 2fd27ff729ea5dee6bd1f3b78eeaf7f3b160ed54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Wed, 7 Oct 2015 19:50:33 +0200 Subject: [PATCH] ValueType: Test promotions --- test/testsymboldatabase.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp index 52ae547a9..114323a7f 100644 --- a/test/testsymboldatabase.cpp +++ b/test/testsymboldatabase.cpp @@ -2971,6 +2971,18 @@ private: ASSERT_EQUALS("float", typeOf("1.2f + 3", "+")); ASSERT_EQUALS("float", typeOf("1 + 2.3f", "+")); + // promotions + ASSERT_EQUALS("signed int", typeOf("(char)1 + (char)2", "+")); + ASSERT_EQUALS("signed int", typeOf("(short)1 + (short)2", "+")); + ASSERT_EQUALS("signed int", typeOf("(signed int)1 + (signed char)2", "+")); + ASSERT_EQUALS("signed int", typeOf("(signed int)1 + (unsigned char)2", "+")); + ASSERT_EQUALS("unsigned int", typeOf("(unsigned int)1 + (signed char)2", "+")); + ASSERT_EQUALS("unsigned int", typeOf("(unsigned int)1 + (unsigned char)2", "+")); + ASSERT_EQUALS("unsigned int", typeOf("(unsigned int)1 + (signed int)2", "+")); + ASSERT_EQUALS("unsigned int", typeOf("(unsigned int)1 + (unsigned int)2", "+")); + ASSERT_EQUALS("signed long", typeOf("(signed long)1 + (unsigned int)2", "+")); + ASSERT_EQUALS("unsigned long", typeOf("(unsigned long)1 + (signed int)2", "+")); + // char * ASSERT_EQUALS("const char *", typeOf("\"hello\" + 1", "+")); ASSERT_EQUALS("char", typeOf("\"hello\"[1]", "["));