Example #1
0
void	choix()
{
  char	choice;
  char  *str;

  choice = ' ';
  while (choice != 'c' && choice != 'h' && choice != 'q' && choice != 'z' && choice != 'b' && choice != 'n')
  {
    str = readLine();
    choice = str[0];
    if (choice  == 'c')
      casu();
    else if (choice == 'h')
      hardcore();
    else if (choice == 'b')
      blind();
    else if (choice == 'n')
      noreturn();
    else if (choice == 'z') {
      help();
      choix();
    }
    else if (choice == 'q')
      my_putstr("Merci d'avoir jouer ! Au revoir !\n");
    else
      my_putstr("Rentrez une valeur correcte s'il vous plait\n");
  }
}
Example #2
0
File: reg.c Project: jnwhiteh/go
void
prop(Reg *r, Bits ref, Bits cal)
{
	Reg *r1, *r2;
	int z;

	for(r1 = r; r1 != R; r1 = r1->p1) {
		for(z=0; z<BITS; z++) {
			ref.b[z] |= r1->refahead.b[z];
			if(ref.b[z] != r1->refahead.b[z]) {
				r1->refahead.b[z] = ref.b[z];
				change++;
			}
			cal.b[z] |= r1->calahead.b[z];
			if(cal.b[z] != r1->calahead.b[z]) {
				r1->calahead.b[z] = cal.b[z];
				change++;
			}
		}
		switch(r1->prog->as) {
		case ACALL:
			if(noreturn(r1->prog))
				break;
			for(z=0; z<BITS; z++) {
				cal.b[z] |= ref.b[z] | externs.b[z];
				ref.b[z] = 0;
			}
			break;

		case ATEXT:
			for(z=0; z<BITS; z++) {
				cal.b[z] = 0;
				ref.b[z] = 0;
			}
			break;

		case ARET:
			for(z=0; z<BITS; z++) {
				cal.b[z] = externs.b[z] | ovar.b[z];
				ref.b[z] = 0;
			}
			break;
		}
		for(z=0; z<BITS; z++) {
			ref.b[z] = (ref.b[z] & ~r1->set.b[z]) |
				r1->use1.b[z] | r1->use2.b[z];
			cal.b[z] &= ~(r1->set.b[z] | r1->use1.b[z] | r1->use2.b[z]);
			r1->refbehind.b[z] = ref.b[z];
			r1->calbehind.b[z] = cal.b[z];
		}
		if(r1->active)
			break;
		r1->active = 1;
	}
	for(; r != r1; r = r->p1)
		for(r2 = r->p2; r2 != R; r2 = r2->p2link)
			prop(r2, r->refbehind, r->calbehind);
}
Example #3
0
/* mark all code reachable from firstp as alive */
static void
mark(Prog *firstp)
{
	Prog *p;
	
	for(p=firstp; p; p=p->link) {
		if(p->reg != dead)
			break;
		p->reg = alive;
		if(p->as != ACALL && p->to.type == D_BRANCH && p->to.branch)
			mark(p->to.branch);
		if(p->as == AJMP || p->as == ARET || (p->as == ACALL && noreturn(p)))
			break;
	}
}
Example #4
0
void    rejouerNR()
{
  char  choix;
  char  *str;

  my_putstr("Voulez-vous rejouez ? (y/n) ");
  choix = ' ';
  while (choix != 'y' && choix != 'n')
    {
      str = readLine();
      choix = str[0];
      if (choix == 'y')
        noreturn();
      else if (choix == 'n')
        my_putstr("Merci d'avoir jouer ! A bientot !\n");
      else
        my_putstr("Vous devez taper y ou n\n");
    }
}
Example #5
0
std::string ErrorToString(Error const error) {
  switch (error) {
    case Error::OK:
      return "OK";
    case Error::CANCELLED:
      return "CANCELLED";
    case Error::UNKNOWN:
      return "UNKNOWN";
    case Error::INVALID_ARGUMENT:
      return "INVALID_ARGUMENT";
    case Error::DEADLINE_EXCEEDED:
      return "DEADLINE_EXCEEDED";
    case Error::NOT_FOUND:
      return "NOT_FOUND";
    case Error::ALREADY_EXISTS:
      return "ALREADY_EXISTS";
    case Error::PERMISSION_DENIED:
      return "PERMISSION_DENIED";
    case Error::UNAUTHENTICATED:
      return "UNAUTHENTICATED";
    case Error::RESOURCE_EXHAUSTED:
      return "RESOURCE_EXHAUSTED";
    case Error::FAILED_PRECONDITION:
      return "FAILED_PRECONDITION";
    case Error::ABORTED:
      return "ABORTED";
    case Error::OUT_OF_RANGE:
      return "OUT_OF_RANGE";
    case Error::UNIMPLEMENTED:
      return "UNIMPLEMENTED";
    case Error::INTERNAL:
      return "INTERNAL";
    case Error::UNAVAILABLE:
      return "UNAVAILABLE";
    case Error::DATA_LOSS:
      return "DATA_LOSS";
  }
  noreturn();
}
Example #6
0
void
prop(Reg *r, Bits ref, Bits cal)
{
	Reg *r1, *r2;
	int z;

	for(r1 = r; r1 != R; r1 = (Reg*)r1->f.p1) {
		for(z=0; z<BITS; z++) {
			ref.b[z] |= r1->refahead.b[z];
			if(ref.b[z] != r1->refahead.b[z]) {
				r1->refahead.b[z] = ref.b[z];
				change++;
			}
			cal.b[z] |= r1->calahead.b[z];
			if(cal.b[z] != r1->calahead.b[z]) {
				r1->calahead.b[z] = cal.b[z];
				change++;
			}
		}
		switch(r1->f.prog->as) {
		case ACALL:
			if(noreturn(r1->f.prog))
				break;
			for(z=0; z<BITS; z++) {
				cal.b[z] |= ref.b[z] | externs.b[z];
				ref.b[z] = 0;
			}
			break;

		case ATEXT:
			for(z=0; z<BITS; z++) {
				cal.b[z] = 0;
				ref.b[z] = 0;
			}
			break;

		case ARET:
			for(z=0; z<BITS; z++) {
				cal.b[z] = externs.b[z] | ovar.b[z];
				ref.b[z] = 0;
			}
			break;

		default:
			// Work around for issue 1304:
			// flush modified globals before each instruction.
			for(z=0; z<BITS; z++) {
				cal.b[z] |= externs.b[z];
				// issue 4066: flush modified return variables in case of panic
				if(hasdefer)
					cal.b[z] |= ovar.b[z];
			}
			break;
		}
		for(z=0; z<BITS; z++) {
			ref.b[z] = (ref.b[z] & ~r1->set.b[z]) |
				r1->use1.b[z] | r1->use2.b[z];
			cal.b[z] &= ~(r1->set.b[z] | r1->use1.b[z] | r1->use2.b[z]);
			r1->refbehind.b[z] = ref.b[z];
			r1->calbehind.b[z] = cal.b[z];
		}
		if(r1->f.active)
			break;
		r1->f.active = 1;
	}
	for(; r != r1; r = (Reg*)r->f.p1)
		for(r2 = (Reg*)r->f.p2; r2 != R; r2 = (Reg*)r2->f.p2link)
			prop(r2, r->refbehind, r->calbehind);
}
Example #7
0
void *
forever_pthread (void *unused)
{
  noreturn ();
}
void *
forever_pthread (void *unused)
{
  incr_thread_count ();
  noreturn ();
}
void *
thread_entry (void *unused)
{
  incr_thread_count ();
  noreturn ();
}
Example #10
0
// RUN: clang-cc -verify -fsyntax-only %s

static void (*fp0)(void) __attribute__((noreturn));

static void __attribute__((noreturn)) f0(void) {
  fatal();
}

// On K&R
int f1() __attribute__((noreturn));

int g0 __attribute__((noreturn)); // expected-warning {{'noreturn' attribute only applies to function types}}

int f2() __attribute__((noreturn(1, 2))); // expected-error {{attribute requires 0 argument(s)}}

void f3() __attribute__((noreturn));
void f3() {
  return;  // expected-error {{function 'f3' declared 'noreturn' should not return}}
}

#pragma clang diagnostic warning "-Winvalid-noreturn"

void f4() __attribute__((noreturn));
void f4() {
  return;  // expected-warning {{function 'f4' declared 'noreturn' should not return}}
}