test_cast.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /* This file is part of asmc, a bootstrapping OS with minimal seed
  2. Copyright (C) 2018-2019 Giovanni Mascellani <gio@debian.org>
  3. https://gitlab.com/giomasce/asmc
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <https://www.gnu.org/licenses/>. */
  14. #include <stddef.h>
  15. typedef struct {
  16. int x;
  17. } X;
  18. int init[] = {((unsigned char)(10 + 256)) != 10, offsetof(X, x)};
  19. int test_cast() {
  20. if (init[0] != 0) return 0;
  21. int x = 1000;
  22. int y = (unsigned char) x;
  23. if (y != 232) return 0;
  24. y = (char) x;
  25. if (y != -24) return 0;
  26. void *x = (void*) "test string";
  27. return 1;
  28. }