https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71282

            Bug ID: 71282
           Summary: C,C++ function strpbrk arg 1 has wrong type on Raspian
                    4.1.19
           Product: gcc
           Version: 4.9.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgcc
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rayconnell at usa dot net
  Target Milestone: ---

Compiling this code with gcc (Raspbian 4.9.2-10):

#include <stdio.h>
#include <string.h>

const char *tstStr = "Some test data";

int main(void){

    char *pSpc = strpbrk(tstStr, " ");
    printf(pSpc);

    return 0;
}

causes GCC to emit the following error:

Building file: test_strpbrk.cpp
Invoking: G++ Compiler
g++ -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"test_strpbrk.d"
-MT"test_strpbrk.d" -o "test_strpbrk.o" "test_strpbrk.cpp"
test_strpbrk.cpp: In function ‘int main()’:
test_strpbrk.cpp:7:37: error: invalid conversion from ‘const char*’ to ‘char*’
[-fpermissive]
     char *pSpc = strpbrk(tstStr, " ");
                                     ^
subdir.mk:11: recipe for target 'test_strpbrk.o' failed
make: *** [test_strpbrk.o] Error 1

However, casting the tstStr var as (char *) causes the program to compile. But
the first arg of strpbrk() should accept const char * and not require char *.

Reply via email to