ORCA-C/Tests/Conformance/c24.0.3.cc
2017-10-21 18:40:19 -05:00

102 lines
2.6 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Conformance Test 24.0.3: Test the use of the extended character set */
#pragma lint -1
#include <stdio.h>
#include <string.h>
typedef enum {false, true} boolean;
void main (void)
{
boolean fail;
int a, b, c, i;
char str[128];
int <EFBFBD><EFBFBD>ƒ´ÄµÆ§·ˆ˜¸Ø¹Šš»ËŒœ¼Ì<EFBFBD><EFBFBD>½ÍŽž®¾ÎÞ<EFBFBD>Ÿ¯¿Ïß;
int <EFBFBD><EFBFBD>ƒ´ÄµÆƧ·Ë˜¸Ø¹ÌÍ»Ë<EFBFBD>œ¼Ì<EFBFBD>½Íƒž®®ÎÞ<EFBFBD>¯¯Îß;
/* Make sure alpha-"looking" characters are allowed in identifiers,
and that the lowercase versions are distinct from the uppercase
versions. */
fail = false;
<EFBFBD><EFBFBD>ƒ´ÄµÆ§·ˆ˜¸Ø¹Šš»ËŒœ¼Ì<EFBFBD><EFBFBD>½ÍŽž®¾ÎÞ<EFBFBD>Ÿ¯¿Ïß = 4;
<EFBFBD><EFBFBD>ƒ´ÄµÆƧ·Ë˜¸Ø¹ÌÍ»Ë<EFBFBD>œ¼Ì<EFBFBD>½Íƒž®®ÎÞ<EFBFBD>¯¯Îß = 5;
if (<EFBFBD><EFBFBD>ƒ´ÄµÆ§·ˆ˜¸Ø¹Šš»ËŒœ¼Ì<EFBFBD><EFBFBD>½ÍŽž®¾ÎÞ<EFBFBD>Ÿ¯¿Ïß != 4)
fail = true;
/* Make sure all special characters are allowed in strings */
strcpy(str, "");
for (i = 17; i <= 20; ++i)
if (str[i - 17] != i) {
fail = true;
printf("Character %d was incorrect in str.\n", i);
}
strcpy(str, "<EFBFBD>ƒ„…†‡ˆ‰ŠŒ<EFBFBD>Ž<EFBFBD><EFBFBD>“”•˜™šœ<EFBFBD>žŸ ¡¢£¤¥¦§¨©ª«"
"¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×Ø");
for (i = 128; i <= 216; ++i)
if (str[i - 128] != i) {
fail = true;
printf("Character %d was incorrect in str.\n", i);
}
if ('Þ' != 222) {
fail = true;
printf("Character 222 was incorrect in str.\n");
}
if ('ß' != 223) {
fail = true;
printf("Character 223 was incorrect in str.\n");
}
/* Make sure all special characters are allowed in comments */
/* The special character set is:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 @ P ` p € <20>   ° À Ð
1  ! 1 A Q a q <20> ¡ ± Á Ñ
2  " 2 B R b r ¢ ² Â Ò
3  # 3 C S c s ƒ “ £ ³ Ã Ó
4  $ 4 D T d t „ ” ¤ ´ Ä Ô
5 % 5 E U e u … • ¥ µ Å Õ
6 & 6 F V f v † ¦ ¶ Æ Ö
7 ' 7 G W g w ‡ — § · Ç ×
8 ( 8 H X h x ˆ ˜ ¨ ¸ È Ø
9 ) 9 I Y i y ‰ ™ © ¹ É
A * 0 J Z j z Š š ª º Ê
B + : K [ k { « » Ë
C , ; L \ l | Œ œ ¬ ¼ Ì
D _ < M ] m } <20> <20> ­ ½ Í
E . = N ^ n ~ Ž ž ® ¾ Î Þ
F / ? O _ o <20> Ÿ ¯ ¿ Ï ß
*/
/* Make sure the special operators work */
/* Some lines also test the non-breaking space */
=Ê100;
=Ê3;
=ÊaÖb;
ifÊ(²Êb)
fail = true;
if (! (a ² a))
fail = true;
if (b ³ a)
fail = true;
if (! (b ³ b))
fail = true;
if (c ­ 33)
fail = true;
c = a Ç 2;
if (c ­ 400)
fail = true;
c = a È 2;
if (c ­ 25)
fail = true;
if (!fail)
printf("Passed Conformance Test 24.0.3\n");
else
printf("Failed Conformance Test 24.0.3\n");
}