Compare commits
2 Commits
94ebb54a8b
...
1b346ed9c0
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b346ed9c0 | |||
| a3ca51a6b5 |
@ -117,6 +117,7 @@ static void scan_tree_for_components(tree t, const char *funcname, gimple_stmt_i
|
|||||||
case CONVERT_EXPR:
|
case CONVERT_EXPR:
|
||||||
case NOP_EXPR:
|
case NOP_EXPR:
|
||||||
case VIEW_CONVERT_EXPR:
|
case VIEW_CONVERT_EXPR:
|
||||||
|
case ADDR_EXPR:
|
||||||
scan_tree_for_components(TREE_OPERAND(t,0), funcname, gsi);
|
scan_tree_for_components(TREE_OPERAND(t,0), funcname, gsi);
|
||||||
break;
|
break;
|
||||||
case ARRAY_REF:
|
case ARRAY_REF:
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
#define container_of(ptr, type, member) ({ \
|
#define container_of(ptr, type, member) ({ \
|
||||||
const typeof(((type*)0)->member)* __mptr = (ptr); \
|
const typeof(((type*)0)->member)* __mptr = (ptr); \
|
||||||
@ -29,5 +30,10 @@ int main(int argc, char** argv) {
|
|||||||
struct B b = { 1, 2, 3, NULL, 4.f, a, NULL };
|
struct B b = { 1, 2, 3, NULL, 4.f, a, NULL };
|
||||||
|
|
||||||
b.m2 = 42;
|
b.m2 = 42;
|
||||||
|
|
||||||
|
struct B* someB = (struct B*)malloc(sizeof(struct B));
|
||||||
|
float* someB_m4 = &someB->m4;
|
||||||
|
container_of(someB_m4, struct B, m4)->m1 = 'x';
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user