Bug 1604023 - Workaround LLVM ABI bug. r=froydnj

All the gory details in https://bugzilla.mozilla.org/show_bug.cgi?id=1600735 and
related LLVM / GCC bugs. Avoid the issue by forcing the relevant enum to be
32-bit wide, so as to not trigger the LLVM bug.

Differential Revision: https://phabricator.services.mozilla.com/D57868

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Emilio Cobos Álvarez 2019-12-19 20:43:06 +00:00
Родитель cf45cda557
Коммит 2c729a4323
2 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -78,7 +78,9 @@ enum nsCSSCounterDesc {
namespace mozilla {
enum class CountedUnknownProperty : uint8_t {
// FIXME: The underlying type of this enum should be uint8_t, but we can't do
// that because of https://bugs.llvm.org/show_bug.cgi?id=44228.
enum class CountedUnknownProperty : uint32_t {
#define COUNTED_UNKNOWN_PROPERTY(name_, method_) method_,
#include "mozilla/CountedUnknownProperties.h"
#undef COUNTED_UNKNOWN_PROPERTY

Просмотреть файл

@ -1803,8 +1803,11 @@ impl ToCss for PropertyId {
}
/// The counted unknown property list which is used for css use counters.
///
/// FIXME: This should be just #[repr(u8)], but can't be because of ABI issues,
/// see https://bugs.llvm.org/show_bug.cgi?id=44228.
#[derive(Clone, Copy, Debug, Eq, FromPrimitive, Hash, PartialEq)]
#[repr(u8)]
#[repr(u32)]
pub enum CountedUnknownProperty {
% for prop in data.counted_unknown_properties:
/// ${prop.name}