On 06/21/2011 07:03 PM, Andrew MacLeod wrote:
On 06/21/2011 06:26 PM, Graham Stott wrote:
All

--- On Tue, 21/6/11, Richard Henderson<r...@redhat.com>  wrote:

This looks to have broken the go frontend


Graham
ah, missed it's .cc file, and I guess it doesn't build by default  :-P

This ought to fix it, checking in as obvious...
Not sure where the patch went... sigh...

        * gogo-tree.cc (Gogo::define_builtin_function_trees): Change 
        BUILT_IN_ADD_AND_FETCH to BUILT_IN_SYNC_ADD_AND_FETCH.

Index: go/gofrontend/gogo-tree.cc
===================================================================
*** go/gofrontend/gogo-tree.cc  (revision 175272)
--- go/gofrontend/gogo-tree.cc  (working copy)
*************** Gogo::define_builtin_function_trees()
*** 91,112 ****
       for ++ and --.  */
    tree t = go_type_for_size(BITS_PER_UNIT, 1);
    tree p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin(BUILT_IN_ADD_AND_FETCH_1, "__sync_fetch_and_add_1", NULL,
                 build_function_type_list(t, p, t, NULL_TREE), false);
  
    t = go_type_for_size(BITS_PER_UNIT * 2, 1);
    p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin (BUILT_IN_ADD_AND_FETCH_2, "__sync_fetch_and_add_2", NULL,
                  build_function_type_list(t, p, t, NULL_TREE), false);
  
    t = go_type_for_size(BITS_PER_UNIT * 4, 1);
    p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin(BUILT_IN_ADD_AND_FETCH_4, "__sync_fetch_and_add_4", NULL,
                 build_function_type_list(t, p, t, NULL_TREE), false);
  
    t = go_type_for_size(BITS_PER_UNIT * 8, 1);
    p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin(BUILT_IN_ADD_AND_FETCH_8, "__sync_fetch_and_add_8", NULL,
                 build_function_type_list(t, p, t, NULL_TREE), false);
  
    // We use __builtin_expect for magic import functions.
--- 91,112 ----
       for ++ and --.  */
    tree t = go_type_for_size(BITS_PER_UNIT, 1);
    tree p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_1, "__sync_fetch_and_add_1", 
NULL,
                 build_function_type_list(t, p, t, NULL_TREE), false);
  
    t = go_type_for_size(BITS_PER_UNIT * 2, 1);
    p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin (BUILT_IN_SYNC_ADD_AND_FETCH_2, "__sync_fetch_and_add_2", 
NULL,
                  build_function_type_list(t, p, t, NULL_TREE), false);
  
    t = go_type_for_size(BITS_PER_UNIT * 4, 1);
    p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_4, "__sync_fetch_and_add_4", 
NULL,
                 build_function_type_list(t, p, t, NULL_TREE), false);
  
    t = go_type_for_size(BITS_PER_UNIT * 8, 1);
    p = build_pointer_type(build_qualified_type(t, TYPE_QUAL_VOLATILE));
!   define_builtin(BUILT_IN_SYNC_ADD_AND_FETCH_8, "__sync_fetch_and_add_8", 
NULL,
                 build_function_type_list(t, p, t, NULL_TREE), false);
  
    // We use __builtin_expect for magic import functions.

Reply via email to