186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//                     The LLVM Compiler Infrastructure
386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// This file is distributed under the University of Illinois Open Source
586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// License. See LICENSE.TXT for details.
686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//  constassign.c
986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//  bocktest
1086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
1186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//  Created by Blaine Garst on 3/21/08.
1286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst//
1386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// shouldn't be able to assign to a const pointer
1486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst// CONFIG error: assignment of read-only
1586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
1686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst#import <stdio.h>
1786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
1886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garstvoid foo(void) { printf("I'm in foo\n"); }
1986d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garstvoid bar(void) { printf("I'm in bar\n"); }
2086d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst
2186d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garstint main(int argc, char *argv[]) {
2286d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    void (*const fptr)(void) = foo;
2386d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    void (^const  blockA)(void) = ^ { printf("hello\n"); };
2486d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    blockA = ^ { printf("world\n"); } ;
2586d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    fptr = bar;
2686d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    printf("%s: success\n", argv[0]);
2786d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst    return 0;
2886d0ba4286ec42dcd055bd22434c7f40009834bdBlaine Garst}
29