lvalue-cast-1.c

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 35 行

C
35
字号
/* APPLE LOCAL file non lvalue assign *//* { dg-do run } *//* { dg-options "-fnon-lvalue-assign" } */#include <stdlib.h>#define CHECK_IF(expr) if (!(expr)) abort ()static int global;void f(int &) { global = 35; }void f(const int &) { global = 78; }long long_arr[2];int main(void) {  char *p;  (long *)p = long_arr; /* { dg-warning "target of assignment not really an lvalue" } */  ((long *)p)++;        /* { dg-warning "target of assignment not really an lvalue" } */  *(long *)p = -1;  *p = -2;  CHECK_IF(p[-1] == 0 && p[0] == -2 && p[1] == -1);  (long *)p += 2;  /* { dg-warning "target of assignment not really an lvalue" } */  (long *)p -= 2;  /* { dg-warning "target of assignment not really an lvalue" } */  long x = 0;  f((int)x);  CHECK_IF(global == 78);    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?