mirror of
https://github.com/aljazceru/lightning.git
synced 2026-01-27 09:44:28 +01:00
This gives us a slew of -Wextra fixes (not all of them though!) but we're actually doing it for the monotonic version of timers. This breaks some stuff, so we fix that up next. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
52 lines
1.3 KiB
Plaintext
52 lines
1.3 KiB
Plaintext
#include "config.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
/**
|
|
* alignof - ALIGNOF() macro to determine alignment of a type.
|
|
*
|
|
* Many platforms have requirements that certain types must be aligned
|
|
* to certain address boundaries, such as ints needing to be on 4-byte
|
|
* boundaries. Attempting to access variables with incorrect
|
|
* alignment may cause performance loss or even program failure (eg. a
|
|
* bus signal).
|
|
*
|
|
* There are times which it's useful to be able to programatically
|
|
* access these requirements, such as for dynamic allocators.
|
|
*
|
|
* Example:
|
|
* #include <stdio.h>
|
|
* #include <stdlib.h>
|
|
* #include <ccan/alignof/alignof.h>
|
|
*
|
|
* // Output contains "ALIGNOF(char) == 1"
|
|
* // Will also print out whether an onstack char array can hold a long.
|
|
* int main(void)
|
|
* {
|
|
* char arr[sizeof(int)];
|
|
*
|
|
* printf("ALIGNOF(char) == %zu\n", ALIGNOF(char));
|
|
* if ((unsigned long)arr % ALIGNOF(int)) {
|
|
* printf("arr %p CANNOT hold an int\n", arr);
|
|
* exit(1);
|
|
* } else {
|
|
* printf("arr %p CAN hold an int\n", arr);
|
|
* exit(0);
|
|
* }
|
|
* }
|
|
*
|
|
* License: CC0 (Public domain)
|
|
* Author: Rusty Russell <rusty@rustcorp.com.au>
|
|
*/
|
|
int main(int argc, char *argv[])
|
|
{
|
|
if (argc != 2)
|
|
return 1;
|
|
|
|
if (strcmp(argv[1], "depends") == 0) {
|
|
return 0;
|
|
}
|
|
|
|
return 1;
|
|
}
|