|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000510||OpenFOAM||[All Projects] Bug||public||2012-04-16 09:14||2013-03-14 09:07|
|Target Version||Fixed in Version|
|Summary||0000510: compiling with llvm/clang fails on ambiguous errors|
|Description||compiling with llvm/clang fails on several ambiguous errors, below is one of them.|
interpolation/surfaceInterpolation/surfaceInterpolation/surfaceInterpolation.C:297:21: fatal error: conversion from 'tmp<vectorField>' to 'vectorField' (aka 'Field<vector>') is ambiguous
vectorField delta = mesh_.boundary()[patchi].delta();
|Steps To Reproduce||Install clang >= 2.9 and compile OF.|
|Additional Information||Also to compile scotch.h with clang the ThirdParty-2.1.x/etc/wmakeFiles/scotch/Makefile.inc files for scotch have to include the following in the CFLAGS -std=gnu89|
|Tags||No tags attached.|
|We are having difficulty mainaining support for Clang at the moment because the way that template specialization is handled changes with every release and we have to add/change a bunch of #ifdef statements accordingly. So far we have not seen any performance advantage in using Clang so we have not been pursuing it for the moment. We will have another go at a Clang port for the next release of OpenFOAM.|
Hi thanks for the clarification.
If there are no performance advantage, it makes little sense to maintain it.
Of course some might like the less restrictive license on the compiler.
Currently there is no performance advantage but this is a young compiler which is undergoing intensive development and at some point the optimization may be better than the competition and we intend to support Clang when it is more stable.
Note that there are already some advantages in using Clang, in particular the error messages from templating are more comprehensible than from gcc, icc etc.
The license choice is not an advantage over gcc for OpenFOAM which we release GPLv3 anyway.
Bluey The Dog (reporter)
Is this compiler output:
/home/agl/OpenFOAM/OpenFOAM-2.1.1/src/OpenFOAM/lnInclude/GeometricBoundaryField.C:525:34: note: use '=' to turn this equality comparison into an
this->operator(patchI) == bf[patchI];
related to this bug? If so, then I can confirm this bug/feature still exists with Clang V3.1 on an up to date 64 bit Gentoo box compiling OF V2.1.1. I get heaps of these...... :)
|We will support Clang-3.1 and probably 3.2 in the next release of OpenFOAM.|
|2012-04-16 09:14||linnemann||New Issue|
|2012-04-16 09:31||henry||Note Added: 0001252|
|2012-04-16 09:34||linnemann||Note Added: 0001253|
|2012-04-16 09:39||henry||Note Added: 0001254|
|2012-06-25 03:07||Bluey The Dog||Note Added: 0001417|
|2012-06-25 09:39||henry||Note Added: 0001418|
|2012-06-25 09:39||henry||Status||new => closed|
|2012-06-25 09:39||henry||Assigned To||=> henry|
|2012-06-25 09:39||henry||Resolution||open => fixed|
||Relationship added||has duplicate 0000717|