This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c/28912] New: Non-functional -funsigned-char: signed/unsigned mismatch is reported


Given the following source:

1:   #include <stdio.h>

3:   unsigned char *p = NULL;
4:   char *s = NULL;

6:   unsigned char *p1 = "p";
7:   char *s1 = "s";

9:  int main()  {
10:    s = p;

12:    char c=255;
13:    printf("%d",c);

15:    return 0;
   }

   gcc -Wall _.c -o _ && ./_

produces:

   _.c:6: warning: pointer targets in initialization differ in signedness
   _.c: In function ?main?:
   _.c:10: warning: pointer targets in assignment differ in signedness
   -1

   gcc -funsigned-char  -Wall _.c -o _ && ./_

produces:

   _.c:6: warning: pointer targets in initialization differ in signedness
   _.c: In function ?main?:
   _.c:10: warning: pointer targets in assignment differ in signedness
   255

and, finally, 

   gcc  -funsigned-char  -Wno-pointer-sign -Wall _.c -o _ && ./_ /_

produces

   255

Reported issue: 
   gcc generates excessive signedness mismatch warning

Expected result:
   -funsigned-char must promote "char" to "unsigned char" and not issues the
warnings.

Known workaround:
   Use -Wno-pointer-sign. 

   However, this supporesses warnings for all types, which is rarely
acceptable. Note that the char signedness issue is typically a side effect of
Unicodization of the project from ASCII encodings to UTF-8.


-- 
           Summary: Non-functional -funsigned-char: signed/unsigned mismatch
                    is reported
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gcc at brainhub dot org
 GCC build triplet: gcc version 4.1.0 20060304 (Red Hat 4.1.0-3) [standard
                    FC 5]
  GCC host triplet: i386-redhat-linux
GCC target triplet: Linux 2.6.16.20 #1 PREEMPT Fri Jun 9 23:10:34 PDT 2006
                    i686 i686


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28912


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]