File: main.c

package info (click to toggle)
cbmc 6.6.0-4
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 153,852 kB
  • sloc: cpp: 386,459; ansic: 114,466; java: 28,405; python: 6,003; yacc: 4,552; makefile: 4,041; lex: 2,487; xml: 2,388; sh: 2,050; perl: 557; pascal: 184; javascript: 163; ada: 36
file content (58 lines) | stat: -rw-r--r-- 894 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <assert.h>

char s[]="abc\001";

char *p="abc";

int input;

int main()
{
  assert(s[1]=='b');
  assert(s[4]==0);

  // write to s
  s[0]='x';

  assert(p[2]=='c');

  p=s;

  // write to p
  p[1]='y';

  assert(s[1]=='y');

  {
    const char local_string[]="asd123";

    assert(local_string[0]=='a');
    assert(sizeof(local_string)==7);
    assert(local_string[6]==0);
  }

  // wide strings

  #ifdef _MSC_VER
  // Visual Studio has a built-in wchar_t,
  // available without header file.
  typedef wchar_t wide_char_type;
  #else
  typedef __typeof__(L'X') wide_char_type;
  #endif

  unsigned width=sizeof(wide_char_type);

  #ifdef _WIN32
  assert(width==2);
  #else
  assert(width==4);
  #endif

  assert(sizeof(L"12" "34")==5*width);
  assert(sizeof("12" L"34")==5*width);

  wide_char_type wide[]=L"1234\x0fff";
  assert(sizeof(wide)==6*width);
  assert(wide[4]==0x0fff);
}