bloomberg/bde — pull request #148 by apaprocki (2014-11-12 22:03:35+00:00)
Title: bdl+decnumber: Work around Clang bug handling GNU inlines.

The C files in `bdl+decnumber` must be built in `-std=gnu89` mode with
Clang to work around a Clang bug when handling GNU-style C89 inlines
in C99 compilation mode. This bug is documented in the upstream LLVM
bug-tracker here: http://llvm.org/bugs/show_bug.cgi?id=5960

Without this fix, `bdl+decnumber` test driver links would fail in this manner when building with Clang on Linux:

```
[bdldfp_denselypackeddecimalimputil.t.cpp.359.o (ERROR)] <<<<<<<<<<
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decQuad.c.367.o): In function `gnu_dev_major':
../groups/bdl/bdl+decnumber/decQuad.c:(.text+0x0): multiple definition of `gnu_dev_major'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x0): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decQuad.c.367.o): In function `gnu_dev_makedev':
../groups/bdl/bdl+decnumber/decQuad.c:(.text+0x70): multiple definition of `gnu_dev_makedev'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x70): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decQuad.c.367.o): In function `gnu_dev_minor':
../groups/bdl/bdl+decnumber/decQuad.c:(.text+0x40): multiple definition of `gnu_dev_minor'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x40): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decSingle.c.367.o): In function `gnu_dev_major':
../groups/bdl/bdl+decnumber/decSingle.c:(.text+0x0): multiple definition of `gnu_dev_major'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x0): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decSingle.c.367.o): In function `gnu_dev_makedev':
../groups/bdl/bdl+decnumber/decSingle.c:(.text+0x70): multiple definition of `gnu_dev_makedev'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x70): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decSingle.c.367.o): In function `gnu_dev_minor':
../groups/bdl/bdl+decnumber/decSingle.c:(.text+0x40): multiple definition of `gnu_dev_minor'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x40): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decContext.c.367.o): In function `gnu_dev_major':
../groups/bdl/bdl+decnumber/decContext.c:(.text+0x0): multiple definition of `gnu_dev_major'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x0): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decContext.c.367.o): In function `gnu_dev_makedev':
../groups/bdl/bdl+decnumber/decContext.c:(.text+0x70): multiple definition of `gnu_dev_makedev'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x70): first defined here
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decContext.c.367.o): In function `gnu_dev_minor':
../groups/bdl/bdl+decnumber/decContext.c:(.text+0x40): multiple definition of `gnu_dev_minor'
groups/bdl/bdl+decnumber/libbdl+decnumber.a(decDouble.c.367.o):../groups/bdl/bdl+decnumber/decDouble.c:(.text+0x40): first defined here
clang-3.4: error: linker command failed with exit code 1 (use -v to see invocation)
>>>>>>>>>>
```

Signed-off-by: Andrew Paprocki