Invalid STOREATOMIC Record

The second equality here: (in lib/Bitcode/Reader/BitcodeReader.cpp)

      AtomicOrdering Ordering = GetDecodedOrdering(Record[OpNum+2]);
      if (Ordering == NotAtomic || Ordering == Release ||
          Ordering == AcquireRelease)
        return Error("Invalid STOREATOMIC record");

Is failing on this assembly, which was generated by Clang:

  store atomic i32 0, i32* @mutex release, align 4

Is this a typo or is there some reason why this assembly is invalid?

Thanks,
- pdox

The second equality here: (in lib/Bitcode/Reader/BitcodeReader.cpp)

 AtomicOrdering Ordering = GetDecodedOrdering\(Record\[OpNum\+2\]\);
 if \(Ordering == NotAtomic || Ordering == Release ||
     Ordering == AcquireRelease\)
   return Error\("Invalid STOREATOMIC record"\);

Is failing on this assembly, which was generated by Clang:

store atomic i32 0, i32* @mutex release, align 4

Is this a typo or is there some reason why this assembly is invalid?

Typo; that should read "Ordering == NotAtomic || Ordering == Acquire

Ordering == AcquireRelease". I'll commit a fix soon.

-Eli

r140040.

-Eli