view gcc/testsuite/objc.dg/sync-2.m @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

/* Make sure that @synchronized parses and a very basic test runs.  */
/* { dg-options "-fobjc-exceptions -fgnu-runtime" } */

#include "../objc-obj-c++-shared/TestsuiteObject.h"

int main (void)
{
  TestsuiteObject *a = [TestsuiteObject new];
  TestsuiteObject *b = [TestsuiteObject new];
  TestsuiteObject *c = [TestsuiteObject new];

  /* This single-threaded test just checks that @synchronized() uses a
     recursive mutex, and that the runtime at least doesn't crash
     immediately upon finding it.
  */
  @synchronized (a)
    {
      @synchronized (a)
	{
	  @synchronized (b)
	    {
	      @synchronized (b)
		{
		  @synchronized (c)
		    {
		      @synchronized (c)
			{
			  return 0;
			}
		    }
		}
	    }
	}
    }
}