• Show log

    Commit

  • Hash : a390ebd9
    Author : Shahbaz Youssefi
    Date : 2018-10-18T13:04:40

    Add compiler printf attribute to relevant functions
    
    Relands 27a472c60 with reinterpret_cast changed to C-style cast to
    support types that are pointers on some platforms and integers on
    others.
    
    This commit includes fixes to undefined behavior caught by this
    attribute.  The following changes have been made:
    
    - 0x%0.8p is changed to %016 PRIxPTR. Both 0 and . have undefined
      behavior with p.  Additionally, %p already prints 0x with both gcc and
      clang.  This results in a small output change:
    
        void *x = (void *)0x1234;
        void *y = (void *)0x1234567890abcdef;
    
        printf("|%0.8p|\n", x);
        printf("|%0.8p|\n", y);
    
        printf("|%016" PRIxPTR "|\n", (uintptr_t)x);
        printf("|%016" PRIxPTR "|\n", (uintptr_t)y);
    
      prints:
    
        |0x00001234|
        |0x1234567890abcdef|
        |0x0000000000001234|
        |0x1234567890abcdef|
    
    - %d used for GLintptr, GLsizeiptr, EGLTime and EGLnsecsANDROID is
      changed to %llu and the relevant argument is cast to unsigned long
      long.  This is due to these types being typedefs to unknown types (on
      Linux for example, these are unsigned long, and my guess would be
      unsigned long long on Windows where long is 32 bits).
    - %llu is used for GLuint64, which could be unsigned long (as is on
      Linux).  Those arguments are cast to unsigned long long.
    - %p is used for some EGLNative types, but those types may not be a
      pointer.  Those arguments are cast to uintptr_t and printed as above.
    
    Bug: angleproject:2928
    Change-Id: Idf9f705c3d00f69e41e7603453016276a2e13a64
    Reviewed-on: https://chromium-review.googlesource.com/c/1300913
    Reviewed-by: Jamie Madill <jmadill@chromium.org>
    Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/angle.git
    Git SSH git@git.kmx.io:kc3-lang/angle.git
    Public access ? public
    Description

    A conformant OpenGL ES implementation for Windows, Mac, Linux, iOS and Android.

    Homepage

    Github

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags