/*
* Post-installation sanity check for libcdecl.
*
* Copyright © 2023 Nick Bowler
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
/* Define configuration macros used in cdecl.h to expand to syntax errors. */
#define HAVE__BOOL (0xdeadc0de * "HAVE__BOOL")
#include
int main(void)
{
extern int puts(const char *);
struct cdecl_declarator decl_array, decl_null = {0};
struct cdecl_declspec spec = {0, CDECL_TYPE_INT};
struct cdecl decl = {0, &spec, &decl_array};
char buf[100];
decl_array.child = &decl_null;
decl_array.type = CDECL_DECL_ARRAY;
decl_array.u.array.length = 1234567890;
decl_array.u.array.vla = NULL;
cdecl_explain(buf, sizeof buf, &decl);
puts(buf);
}