New submission from Daniel Lord: ERROR SUMMARY: abstract.h:1332:60: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] #define PyMapping_Keys(O) PyObject_CallMethod(O,"keys",NULL)
ISSUE CRITICALITY: Non-fatal Warning (will become an error eventually when deprecations expire and errors are introduced in c++XX or later) COMPILER: g++ -std=c++11 g++ 4.2.1 $g++ -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 7.3.0 (clang-703.0.31) Target: x86_64-apple-darwin15.5.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin FILE: abstract.h WORKAROUND: add compiler option: -Wc++11-compat-deprecated-writable-strings and -Wwritable-strings. In theory anyway: doesn't seem to work (still get the warning) and when I tried g++ 5.3.0, the compiler marks that option as an error and unsupported. g++-5.3.0: error: unrecognized command line option ‘-Wwritable-strings’ g++-5.3.0: error: unrecognized command line option ‘-Wc++11-compat-deprecated-writable-strings’ ERROR MESSAGE: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings] pList = PyMapping_Keys(pDict); ^ /Users/xxxxxx/anaconda/include/python2.7/abstract.h:1332:49: note: expanded from macro 'PyMapping_Keys' #define PyMapping_Keys(O) PyObject_CallMethod(O,"keys",NULL) ^ 1 warning generated. OFFENDING STATEMNT: #define PyMapping_Keys(O) PyObject_CallMethod(O,"keys",NULL) PROBLEM: "keys" is a string literal but not declared as a constant. COMMENTS: This is not a big deal...yet. I can compile with g++ C++11 using the above flag to allow deprecated writeable string literals for my application embedding Python 2.7. However, I assume the embedding code is replete with non-constant string literals which eventually need to be fixed though this is the first one I have run into. ---------- components: Extension Modules messages: 270572 nosy: Daniel Lord priority: normal severity: normal status: open title: Non-Critical Compiler WARNING: Python Embedding C++11 does not allow non-constant string literals type: compile error versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue27530> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com