~ubuntu-branches/ubuntu/trusty/llvm-toolchain-snapshot/trusty-201310232150

« back to all changes in this revision

Viewing changes to clang/test/Sema/captured-statements.c

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-27 15:01:57 UTC
  • mfrom: (0.10.1) (0.9.1) (0.8.1) (0.7.1) (0.6.1) (0.5.2)
  • Revision ID: package-import@ubuntu.com-20130527150157-tdkrsjpuvht7v0qx
Tags: 1:3.4~svn182733-1~exp1
* New snapshot release (3.4 release)
* Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so
    to fix make the llvm-config-3.4 --libdir work (Closes: #708677)
  * Various packages rename to allow co installations:
    * libclang1 => libclang1-3.4
    * libclang1-dbg => libclang1-3.4-dbg
    * libclang-dev => libclang-3.4-dev
    * libclang-common-dev => libclang-common-3.4-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
}
50
50
 
51
51
void test_nest_block() {
52
 
  __block int x;
 
52
  __block int x; // expected-note {{'x' declared here}}
53
53
  int y;
54
54
  ^{
55
55
    int z;
56
56
    #pragma clang __debug captured
57
57
    {
58
 
      x = y; // OK
 
58
      x = y; // expected-error{{__block variable 'x' cannot be captured in a captured statement}}
59
59
      y = z; // expected-error{{variable is not assignable (missing __block type specifier)}}
60
60
      z = y; // OK
61
61
    }
62
62
  }();
63
63
 
64
 
  __block int a;
 
64
  __block int a; // expected-note 2 {{'a' declared here}}
65
65
  int b;
66
66
  #pragma clang __debug captured
67
67
  {
68
68
    __block int c;
69
69
    int d;
70
70
    ^{
71
 
      a = b; // OK
72
 
      a = c; // OK
 
71
      a = b; // expected-error{{__block variable 'a' cannot be captured in a captured statement}}
73
72
      b = d; // OK - Consistent with block inside a lambda
74
 
      c = a; // OK
 
73
      c = a; // expected-error{{__block variable 'a' cannot be captured in a captured statement}}
 
74
      c = d; // OK
75
75
      d = b; // expected-error{{variable is not assignable (missing __block type specifier)}}
76
76
    }();
77
77
  }