File: main.c

package info (click to toggle)
cbmc 5.10-5
  • links: PTS
  • area: main
  • in suites: buster
  • size: 73,416 kB
  • sloc: cpp: 264,330; ansic: 38,268; java: 19,025; python: 4,539; yacc: 4,275; makefile: 2,547; lex: 2,394; sh: 932; perl: 525; xml: 289; pascal: 169
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);
}