http://llvm.org/bugs/show_bug.cgi?id=14040
Bug #: 14040
Summary: Formatting difference between `clang++ --version` and
macro, __clang_version__
Product: clang
Version: trunk
Platform: Macintosh
OS/Version: MacOS X
Status: NEW
Severity: normal
Priority: P
Component: Driver
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Classification: Unclassified
The version, as reported by the command `clang++ --version`, is formatted such
that the revision is parenthesized.
e.g., "clang version 3.2 (trunk 164372)"
The version, as stored in the macro, __clang_version__, according to the
command `clang++ -dM -E -x c /dev/null | grep __clang_version__`, is formatted
such that the revision is double-parenthesized.
e.g., "3.2 ((trunk 164372))"
They should be defined such that the latter is a substring of the former so the
following pseudocode can be used to identify an exact compiler match:
if (!!strstr(`clang++ --version`, __clang_version__)) {/* match found */}
Otherwise, one must write special-case code that makes assumptions about the
string format, parses the string, and performs sub-matching.
It is also inconsistent with the behavior of other compilers, e.g., GCC and
MSVC.
`gcc -dM -E -x c /dev/null | grep __VERSION__` is a substring of the output
from `g++ --version`
The stringized _MSC_FULL_VER macro is a substring of the output from
`cl.exe`
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs