llvm-hs 8.0.0 → 9.0.0
raw patch · 26 files changed
+197/−99 lines, 26 filesdep ~basedep ~llvm-hs-puresetup-changedPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, llvm-hs-pure
API changes (from Hackage documentation)
- LLVM.Internal.FFI.LLVMCTypes: mcTargetOptionFlagSanitizeAddress :: MCTargetOptionFlag
- LLVM.Internal.Target: instance (GHC.Base.Monad d, LLVM.Internal.Coding.DecodeM d Data.ByteString.Internal.ByteString es) => LLVM.Internal.Coding.DecodeM d (Data.Map.Internal.Map LLVM.Internal.Target.CPUFeature GHC.Types.Bool) es
- LLVM.Target.Options: [sanitizeAddresses] :: MachineCodeOptions -> Bool
+ LLVM.Internal.FFI.LLVMCTypes: functionAttributeKindNoFree :: FunctionAttributeKind
+ LLVM.Internal.FFI.LLVMCTypes: functionAttributeKindNoSync :: FunctionAttributeKind
+ LLVM.Internal.FFI.LLVMCTypes: functionAttributeKindSanitizeMemTag :: FunctionAttributeKind
+ LLVM.Internal.FFI.LLVMCTypes: functionAttributeKindWillReturn :: FunctionAttributeKind
+ LLVM.Internal.FFI.LLVMCTypes: parameterAttributeKindImmArg :: ParameterAttributeKind
+ LLVM.Internal.Target: instance (Control.Monad.Fail.MonadFail d, LLVM.Internal.Coding.DecodeM d Data.ByteString.Internal.ByteString es) => LLVM.Internal.Coding.DecodeM d (Data.Map.Internal.Map LLVM.Internal.Target.CPUFeature GHC.Types.Bool) es
+ LLVM.Internal.Target: withHostTargetMachineDefault :: (TargetMachine -> IO a) -> IO a
+ LLVM.Target: withHostTargetMachineDefault :: (TargetMachine -> IO a) -> IO a
+ LLVM.Transforms: [kernel] :: Pass -> Bool
+ LLVM.Transforms: [recover] :: Pass -> Bool
- LLVM.Internal.FFI.PassManager: addMemorySanitizerPass :: Ptr PassManager -> LLVMBool -> IO ()
+ LLVM.Internal.FFI.PassManager: addMemorySanitizerPass :: Ptr PassManager -> LLVMBool -> LLVMBool -> LLVMBool -> IO ()
- LLVM.Internal.FFI.PassManager: addMemorySanitizerPass' :: Ptr PassManager -> LLVMBool -> IO ()
+ LLVM.Internal.FFI.PassManager: addMemorySanitizerPass' :: Ptr PassManager -> LLVMBool -> LLVMBool -> LLVMBool -> IO ()
- LLVM.Internal.Target: withHostTargetMachine :: (TargetMachine -> IO a) -> IO a
+ LLVM.Internal.Target: withHostTargetMachine :: Model -> Model -> Level -> (TargetMachine -> IO a) -> IO a
- LLVM.Target: withHostTargetMachine :: (TargetMachine -> IO a) -> IO a
+ LLVM.Target: withHostTargetMachine :: Model -> Model -> Level -> (TargetMachine -> IO a) -> IO a
- LLVM.Target.Options: MachineCodeOptions :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> MachineCodeOptions
+ LLVM.Target.Options: MachineCodeOptions :: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> MachineCodeOptions
- LLVM.Transforms: MemorySanitizer :: Bool -> Pass
+ LLVM.Transforms: MemorySanitizer :: Bool -> Bool -> Bool -> Pass
Files
- CHANGELOG.md +21/−0
- Setup.hs +3/−3
- llvm-hs.cabal +4/−4
- src/Control/Monad/Trans/AnyCont.hs +3/−1
- src/LLVM/CodeModel.hs +1/−1
- src/LLVM/Internal/Attribute.hs +2/−0
- src/LLVM/Internal/FFI/Attribute.h +5/−0
- src/LLVM/Internal/FFI/MetadataC.cpp +8/−8
- src/LLVM/Internal/FFI/OrcJITC.cpp +4/−0
- src/LLVM/Internal/FFI/PassManagerC.cpp +6/−3
- src/LLVM/Internal/FFI/ShortByteString.hs +8/−1
- src/LLVM/Internal/FFI/Target.h +0/−1
- src/LLVM/Internal/Operand.hs +18/−2
- src/LLVM/Internal/Target.hs +27/−8
- src/LLVM/Target.hs +1/−1
- src/LLVM/Target/Options.hs +0/−1
- src/LLVM/Transforms.hs +6/−2
- test/LLVM/Test/Instructions.hs +1/−2
- test/LLVM/Test/Instrumentation.hs +2/−2
- test/LLVM/Test/Metadata.hs +18/−2
- test/LLVM/Test/ObjectCode.hs +1/−1
- test/LLVM/Test/OrcJIT.hs +6/−3
- test/LLVM/Test/Target.hs +0/−1
- test/debug_metadata_3.ll +52/−52
- test/debug_metadata_4.ll too large to diff
- test/debug_metadata_5.ll too large to diff
CHANGELOG.md view
@@ -1,3 +1,24 @@+## 9.0.0 (2019-09-06)++* Support GHC 8.8+* Update to LLVM 9.0+ * Note that this is the last LLVM release that supports the current+ OrcJIT APIs and `llvm-hs` does not yet have bindings for OrcJIT+ V2. If you are interested in working on that please get in+ touch. See https://github.com/llvm-hs/llvm-hs/issues/276 for more+ details.+ * The `sanitizeAddresses` field from `MachineCodeOptions` has been+ removed following a change in LLVM.+ * The `MemorySanitizer` now has two new options `kernel` and+ `recover` matching the options in LLVM.+++## 8.1.0++* Change `withHostTargetMachine` to accept the code model, relocation model,+ and optimization level as arguments. The old behaviour is available+ under the name `withHostTargetMachineDefault`.+ ## 8.0.0 (2019-03-10) * Upgrade to LLVM 8
Setup.hs view
@@ -41,10 +41,10 @@ #endif llvmVersion :: Version-llvmVersion = mkVersion [8,0]+llvmVersion = mkVersion [9,0] --- Ordered by decreasing specificty so we will prefer llvm-config-8.0--- over llvm-config-8 over llvm-config.+-- Ordered by decreasing specificty so we will prefer llvm-config-9.0+-- over llvm-config-9 over llvm-config. llvmConfigNames :: [String] llvmConfigNames = reverse versionedConfigs ++ ["llvm-config"] where
llvm-hs.cabal view
@@ -1,5 +1,5 @@ name: llvm-hs-version: 8.0.0+version: 9.0.0 license: BSD3 license-file: LICENSE author: Anthony Cowley, Stephen Diehl, Moritz Kiefer <moritz.kiefer@purelyfunctional.org>, Benjamin S. Scarlet@@ -42,13 +42,13 @@ test/debug_metadata_4.ll test/debug_metadata_5.ll test/main_return_38.c-tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.4+tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5 extra-source-files: CHANGELOG.md source-repository head type: git location: git://github.com/llvm-hs/llvm-hs.git- branch: llvm-8+ branch: llvm-9 flag shared-llvm description: link against llvm shared rather than static library@@ -79,7 +79,7 @@ template-haskell >= 2.5.0.0, containers >= 0.4.2.1, array >= 0.4.0.0,- llvm-hs-pure == 8.0.*+ llvm-hs-pure == 9.0.* hs-source-dirs: src default-extensions: NoImplicitPrelude
src/Control/Monad/Trans/AnyCont.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE- RankNTypes+ CPP, RankNTypes #-} module Control.Monad.Trans.AnyCont where @@ -21,7 +21,9 @@ instance Monad m => Monad (AnyContT m) where AnyContT f >>= k = AnyContT $ f >>= unAnyContT . k return a = AnyContT $ return a+#if !(MIN_VERSION_base(4,13,0)) fail s = AnyContT (ContT (\_ -> Cont.fail s))+#endif instance MonadFail m => MonadFail (AnyContT m) where fail s = AnyContT (ContT (\_ -> Fail.fail s))
src/LLVM/CodeModel.hs view
@@ -1,4 +1,4 @@--- | Relocations, used in specifying TargetMachine+-- | Code model, used in specifying TargetMachine module LLVM.CodeModel where import LLVM.Prelude
src/LLVM/Internal/Attribute.hs view
@@ -55,6 +55,7 @@ A.PA.Nest -> FFI.parameterAttributeKindNest A.PA.ReadOnly -> FFI.parameterAttributeKindReadOnly A.PA.ReadNone -> FFI.parameterAttributeKindReadNone+ A.PA.ImmArg -> FFI.parameterAttributeKindImmArg A.PA.InAlloca -> FFI.parameterAttributeKindInAlloca A.PA.NonNull -> FFI.parameterAttributeKindNonNull A.PA.Returned -> FFI.parameterAttributeKindReturned@@ -149,6 +150,7 @@ [parameterAttributeKindP|Returned|] -> return A.PA.Returned [parameterAttributeKindP|SwiftSelf|] -> return A.PA.SwiftSelf [parameterAttributeKindP|SwiftError|] -> return A.PA.SwiftError+ [parameterAttributeKindP|ImmArg|] -> return A.PA.ImmArg _ -> error $ "unhandled parameter attribute enum value: " ++ show enum instance DecodeM DecodeAST A.FA.FunctionAttribute FFI.FunctionAttribute where
src/LLVM/Internal/FFI/Attribute.h view
@@ -16,6 +16,7 @@ macro(Convergent,F,F,T) \ macro(Dereferenceable,T,T,F) \ macro(DereferenceableOrNull,T,T,F) \+ macro(ImmArg,T,F,F) \ macro(InAlloca,T,F,F) \ macro(InReg,T,T,F) \ macro(InaccessibleMemOnly,F,F,T) \@@ -30,11 +31,13 @@ macro(NoCapture,T,F,F) \ macro(NoCfCheck,F,F,T) \ macro(NoDuplicate,F,F,T) \+ macro(NoFree,F,F,T) \ macro(NoImplicitFloat,F,F,T) \ macro(NoInline,F,F,T) \ macro(NoRecurse,F,F,T) \ macro(NoRedZone,F,F,T) \ macro(NoReturn,F,F,T) \+ macro(NoSync,F,F,T) \ macro(NoUnwind,F,F,T) \ macro(NonLazyBind,F,F,T) \ macro(NonNull,T,T,F) \@@ -49,6 +52,7 @@ macro(SafeStack,F,F,T) \ macro(SanitizeAddress,F,F,T) \ macro(SanitizeHWAddress,F,F,T) \+ macro(SanitizeMemTag,F,F,T) \ macro(SanitizeMemory,F,F,T) \ macro(SanitizeThread,F,F,T) \ macro(ShadowCallStack,F,F,T) \@@ -63,6 +67,7 @@ macro(SwiftError,T,F,F) \ macro(SwiftSelf,T,F,F) \ macro(UWTable,F,F,T) \+ macro(WillReturn,F,F,T) \ macro(WriteOnly,T,F,T) \ macro(ZExt,T,T,F) \ macro(EndAttrKinds,F,F,F)
src/LLVM/Internal/FFI/MetadataC.cpp view
@@ -340,15 +340,15 @@ return cast_or_null<MDTuple>(dt->getRawElements()); } -DITypeRef LLVM_Hs_DICompositeTypeGetVTableHolder(DICompositeType *dt) {+DIType* LLVM_Hs_DICompositeTypeGetVTableHolder(DICompositeType *dt) { return dt->getVTableHolder(); } -DITypeRef LLVM_Hs_DICompositeTypeGetBaseType(DICompositeType *dt) {+DIType* LLVM_Hs_DICompositeTypeGetBaseType(DICompositeType *dt) { return dt->getBaseType(); } -DITypeRef LLVM_Hs_DIDerivedTypeGetBaseType(DIDerivedType *dt) {+DIType* LLVM_Hs_DIDerivedTypeGetBaseType(DIDerivedType *dt) { return dt->getBaseType(); } @@ -507,7 +507,7 @@ } DIType* LLVM_Hs_DISubprogram_GetContainingType(DISubprogram* p) {- return p->getContainingType().resolve();+ return p->getContainingType(); } DICompileUnit* LLVM_Hs_DISubprogram_GetUnit(DISubprogram* p) {@@ -588,7 +588,7 @@ } DIType* LLVM_Hs_DIVariable_GetType(DIVariable* v) {- return v->getType().resolve();+ return v->getType(); } uint32_t LLVM_Hs_DIVariable_GetAlignInBits(DIVariable* v) {@@ -745,7 +745,7 @@ } DIType* LLVM_Hs_DITemplateParameter_GetType(DITemplateParameter* p) {- return p->getType().resolve();+ return p->getType(); } // DITemplateTypeParameter@@ -821,7 +821,7 @@ } DINode* LLVM_Hs_DIImportedEntity_GetEntity(DIImportedEntity* e) {- return e->getEntity().resolve();+ return e->getEntity(); } MDString* LLVM_Hs_DIImportedEntity_GetName(DIImportedEntity* e) {@@ -877,7 +877,7 @@ } DIType* LLVM_Hs_DIObjCProperty_GetType(DIObjCProperty* o) {- return o->getType().resolve();+ return o->getType(); } // DIModule
src/LLVM/Internal/FFI/OrcJITC.cpp view
@@ -1,3 +1,7 @@+// We ignore deprecations until we get around to updating to the new OrcJIT API+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"+#pragma clang diagnostic ignored "-Wdeprecated-declarations"+ #include "llvm/Support/Error.h" #include "LLVM/Internal/FFI/ErrorHandling.hpp"
src/LLVM/Internal/FFI/PassManagerC.cpp view
@@ -9,6 +9,7 @@ #include "llvm/Transforms/IPO/PassManagerBuilder.h" #include "llvm/Transforms/Vectorize.h" #include "llvm/Transforms/Instrumentation.h"+#include "llvm/Transforms/Instrumentation/AddressSanitizer.h" #include "llvm/Transforms/Instrumentation/BoundsChecking.h" #include "llvm/Transforms/Instrumentation/MemorySanitizer.h" #include "llvm/Transforms/Instrumentation/ThreadSanitizer.h"@@ -146,14 +147,16 @@ void LLVM_Hs_AddAddressSanitizerModulePass( LLVMPassManagerRef PM ) {- unwrap(PM)->add(createAddressSanitizerModulePass());+ unwrap(PM)->add(createModuleAddressSanitizerLegacyPassPass()); } void LLVM_Hs_AddMemorySanitizerPass( LLVMPassManagerRef PM,- LLVMBool trackOrigins+ LLVMBool trackOrigins,+ LLVMBool recover,+ LLVMBool kernel ) {- unwrap(PM)->add(createMemorySanitizerLegacyPassPass(trackOrigins));+ unwrap(PM)->add(createMemorySanitizerLegacyPassPass({trackOrigins, recover, kernel})); } void LLVM_Hs_AddThreadSanitizerPass(
src/LLVM/Internal/FFI/ShortByteString.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} module LLVM.Internal.FFI.ShortByteString ( packCString , packCStringLen@@ -5,8 +6,12 @@ , useAsCStringLen ) where -import LLVM.Prelude ++#if MIN_VERSION_bytestring(0,10,9)+import Data.ByteString.Short+#else+import LLVM.Prelude import Data.ByteString.Internal (c_strlen) import Data.ByteString.Short.Internal import qualified Data.ByteString.Short as ByteString@@ -14,6 +19,7 @@ import Foreign.Marshal.Alloc import Foreign.Storable + {-# INLINABLE packCString #-} packCString :: CString -> IO ShortByteString packCString cstr = do@@ -42,3 +48,4 @@ copyToPtr bs 0 buf (fromIntegral l) action (buf, l) where l = ByteString.length bs+#endif
src/LLVM/Internal/FFI/Target.h view
@@ -54,7 +54,6 @@ } LLVM_Hs_TargetOptionFlag; #define LLVM_HS_FOR_EACH_MC_TARGET_OPTION_FLAG(macro) \- macro(SanitizeAddress) \ macro(MCRelaxAll) \ macro(MCNoExecStack) \ macro(MCFatalWarnings) \
src/LLVM/Internal/Operand.hs view
@@ -78,7 +78,15 @@ A.IntroducedVirtual -> 1 `shiftL` 18 A.BitField -> 1 `shiftL` 19 A.NoReturn -> 1 `shiftL` 20- A.MainSubprogram -> 1 `shiftL` 21+ A.ArgumentNotModified -> 1 `shiftL` 21+ A.TypePassByValue -> 1 `shiftL` 22+ A.TypePassByReference -> 1 `shiftL` 23+ A.EnumClass -> 1 `shiftL` 24+ A.Thunk -> 1 `shiftL` 25+ A.NonTrivial -> 1 `shiftL` 26+ A.BigEndian -> 1 `shiftL` 27+ A.LittleEndian -> 1 `shiftL` 28+ A.AllCallsDescribed -> 1 `shiftL` 29 instance Applicative m => DecodeM m [A.DIFlag] FFI.DIFlags where decodeM (FFI.DIFlags f) =@@ -119,7 +127,15 @@ , A.IntroducedVirtual , A.BitField , A.NoReturn- , A.MainSubprogram+ , A.ArgumentNotModified+ , A.TypePassByValue+ , A.TypePassByReference+ , A.EnumClass+ , A.Thunk+ , A.NonTrivial+ , A.BigEndian+ , A.LittleEndian+ , A.AllCallsDescribed ] instance DecodeM DecodeAST A.Operand (Ptr FFI.Value) where
src/LLVM/Internal/Target.hs view
@@ -11,6 +11,7 @@ import Control.Monad.AnyCont import Control.Monad.Catch+import Control.Monad.Fail (MonadFail) import Control.Monad.IO.Class import Control.Monad.Trans.Except @@ -124,7 +125,7 @@ instance EncodeM e ByteString es => EncodeM e (Map CPUFeature Bool) es where encodeM = encodeM . ByteString.intercalate "," . map (\(CPUFeature f, enabled) -> (if enabled then "+" else "-") <> f) . Map.toList -instance (Monad d, DecodeM d ByteString es) => DecodeM d (Map CPUFeature Bool) es where+instance (MonadFail d, DecodeM d ByteString es) => DecodeM d (Map CPUFeature Bool) es where decodeM es = do s <- decodeM es let flag = do@@ -203,7 +204,6 @@ pokeMachineCodeOptions :: TO.MachineCodeOptions -> MCTargetOptions -> IO () pokeMachineCodeOptions hOpts (MCTargetOptions cOpts) = mapM_ (\(c, ha) -> FFI.setMCTargetOptionFlag cOpts c =<< encodeM (ha hOpts)) [- (FFI.mcTargetOptionFlagSanitizeAddress, TO.sanitizeAddresses), (FFI.mcTargetOptionFlagMCRelaxAll, TO.relaxAll), (FFI.mcTargetOptionFlagMCNoExecStack, TO.noExecutableStack), (FFI.mcTargetOptionFlagMCFatalWarnings, TO.fatalWarnings),@@ -279,8 +279,6 @@ peekMachineCodeOptions :: MCTargetOptions -> IO TO.MachineCodeOptions peekMachineCodeOptions (MCTargetOptions tOpts) = do let gof = decodeM <=< FFI.getMCTargetOptionsFlag tOpts- sanitizeAddresses- <- gof FFI.mcTargetOptionFlagSanitizeAddress relaxAll <- gof FFI.mcTargetOptionFlagMCRelaxAll noExecutableStack@@ -406,16 +404,37 @@ initializeAllTargets :: IO () initializeAllTargets = FFI.initializeAllTargets --- | Bracket creation and destruction of a 'TargetMachine' configured for the host-withHostTargetMachine :: (TargetMachine -> IO a) -> IO a-withHostTargetMachine f = do+-- | Bracket creation and destruction of a 'TargetMachine' configured for the host.+--+-- This function infers and fills the properties of the host machine+-- (architecture, CPU type, operating system etc.) to construct+-- a 'TargetMachine' value, but other parameters of 'TargetMachine' (the+-- code model, relocation model, and optimization level) have to be+-- provided by the user. For instance, for the JIT-compiled code that you+-- want to dynamically load you probably want to use the 'Reloc.PIC'+-- relocation model.+withHostTargetMachine+ :: Reloc.Model+ -> CodeModel.Model+ -> CodeGenOpt.Level+ -> (TargetMachine -> IO a) -> IO a+withHostTargetMachine relocModel codeModel codeGenOpt f = do initializeAllTargets triple <- getProcessTargetTriple cpu <- getHostCPUName features <- getHostCPUFeatures (target, _) <- lookupTarget Nothing triple withTargetOptions $ \options ->- withTargetMachine target triple cpu features options Reloc.Default CodeModel.Default CodeGenOpt.Default f+ withTargetMachine target triple cpu features options relocModel codeModel codeGenOpt f++-- | Like 'withHostTargetMachine', but assumes the default values for the+-- relocation model, code model, and optimization level ('Reloc.Default',+-- 'CodeModel.Default', 'CodeGenOpt.Default' respectively).+--+-- Note that the 'Reloc.Default' relocation model __is not__ suitable for+-- JIT compilation; use 'withHostTargetMachine' and 'Reloc.PIC' instead.+withHostTargetMachineDefault :: (TargetMachine -> IO a) -> IO a+withHostTargetMachineDefault f = withHostTargetMachine Reloc.Default CodeModel.Default CodeGenOpt.Default f -- | <http://llvm.org/docs/doxygen/html/classllvm_1_1TargetLibraryInfo.html> newtype TargetLibraryInfo = TargetLibraryInfo (Ptr FFI.TargetLibraryInfo)
src/LLVM/Target.hs view
@@ -7,7 +7,7 @@ Target, TargetMachine, TargetLowering, CPUFeature(..), withTargetOptions, peekTargetOptions, pokeTargetOptions,- withTargetMachine, withHostTargetMachine, targetMachineOptions,+ withTargetMachine, withHostTargetMachine, withHostTargetMachineDefault, targetMachineOptions, getTargetLowering, getTargetMachineTriple, getDefaultTargetTriple, getProcessTargetTriple, getHostCPUName, getHostCPUFeatures, getTargetMachineDataLayout, initializeNativeTarget, initializeAllTargets,
src/LLVM/Target/Options.hs view
@@ -101,7 +101,6 @@ -- | <http://llvm.org/doxygen/classllvm_1_1MCTargetOptions.html> data MachineCodeOptions = MachineCodeOptions {- sanitizeAddresses :: Bool, relaxAll :: Bool, noExecutableStack :: Bool, fatalWarnings :: Bool,
src/LLVM/Transforms.hs view
@@ -97,7 +97,9 @@ | AddressSanitizer | AddressSanitizerModule | MemorySanitizer {- trackOrigins :: Bool+ trackOrigins :: Bool,+ recover :: Bool,+ kernel :: Bool } | ThreadSanitizer | BoundsChecking@@ -136,7 +138,9 @@ -- | Defaults for 'MemorySanitizer'. defaultMemorySanitizer :: Pass defaultMemorySanitizer = MemorySanitizer {- trackOrigins = False+ trackOrigins = False,+ recover = False,+ kernel = False } -- | Defaults for 'ThreadSanitizer'.
test/LLVM/Test/Instructions.hs view
@@ -737,7 +737,6 @@ \source_filename = \"<string>\"\n\ \\n\ \define void @0() {\n\- \; <label>:0:\n\ \ switch i16 2, label %foo [\n\ \ i16 0, label %0\n\ \ i16 2, label %foo\n\@@ -790,7 +789,7 @@ \ %1 = load i8*, i8** @0\n\ \ indirectbr i8* %1, [label %2]\n\ \\n\- \; <label>:2: ; preds = %0\n\+ \2: ; preds = %0\n\ \ ret void\n\ \}\n" ), (
test/LLVM/Test/Instrumentation.hs view
@@ -39,7 +39,7 @@ moduleAST mIn' ast = do- dl <- withHostTargetMachine getTargetMachineDataLayout+ dl <- withHostTargetMachineDefault getTargetMachineDataLayout triple <- liftIO getDefaultTargetTriple return $ Module "<string>" "<string>" (Just dl) (Just triple) [ -- This function is needed for AddressSanitizerModule@@ -149,7 +149,7 @@ testCase n $ do triple <- getProcessTargetTriple withTargetLibraryInfo triple $ \tli -> do- dl <- withHostTargetMachine getTargetMachineDataLayout+ dl <- withHostTargetMachineDefault getTargetMachineDataLayout ast <- ast ast' <- instrument (defaultPassSetSpec { transforms = [p], dataLayout = Just dl, targetLibraryInfo = Just tli }) ast let names ast = [ n | GlobalDefinition d <- moduleDefinitions ast, Name n <- return (G.name d) ]
test/LLVM/Test/Metadata.hs view
@@ -479,7 +479,15 @@ , A.IntroducedVirtual , A.BitField , A.NoReturn- , A.MainSubprogram+ , A.ArgumentNotModified+ , A.TypePassByValue+ , A.TypePassByReference+ , A.EnumClass+ , A.Thunk+ , A.NonTrivial+ , A.BigEndian+ , A.LittleEndian+ , A.AllCallsDescribed ] ] @@ -525,7 +533,15 @@ , A.IntroducedVirtual , A.BitField , A.NoReturn- , A.MainSubprogram+ , A.ArgumentNotModified+ , A.TypePassByValue+ , A.TypePassByReference+ , A.EnumClass+ , A.Thunk+ , A.NonTrivial+ , A.BigEndian+ , A.LittleEndian+ , A.AllCallsDescribed ] roundtripDISubprogram :: TestTree
test/LLVM/Test/ObjectCode.hs view
@@ -24,7 +24,7 @@ withContext $ \ctx -> withSystemTempFile "foo" $ \objFile handle -> do hClose handle- withHostTargetMachine $ \machine ->+ withHostTargetMachineDefault $ \machine -> withModuleFromLLVMAssembly ctx ll $ \mdl -> do obj <- moduleObject machine mdl _ <- writeObjectToFile machine (File objFile) mdl
test/LLVM/Test/OrcJIT.hs view
@@ -27,6 +27,9 @@ import qualified LLVM.Internal.OrcJIT.CompileLayer as CL import qualified LLVM.Internal.OrcJIT.LinkingLayer as LL import LLVM.Target+import qualified LLVM.Relocation as Reloc+import qualified LLVM.CodeModel as CodeModel+import qualified LLVM.CodeGenOpt as CodeGenOpt testModule :: ByteString testModule =@@ -76,7 +79,7 @@ testCase "eager compilation" $ do resolvers <- newIORef Map.empty withTestModule $ \mod ->- withHostTargetMachine $ \tm ->+ withHostTargetMachine Reloc.PIC CodeModel.Default CodeGenOpt.Default $ \tm -> withExecutionSession $ \es -> withObjectLinkingLayer es (\k -> fmap (\rs -> rs Map.! k) (readIORef resolvers)) $ \linkingLayer -> withIRCompileLayer linkingLayer tm $ \compileLayer -> do@@ -100,7 +103,7 @@ passmanagerSuccessful <- newIORef False resolvers <- newIORef Map.empty withTestModule $ \mod ->- withHostTargetMachine $ \tm ->+ withHostTargetMachine Reloc.PIC CodeModel.Default CodeGenOpt.Default $ \tm -> withExecutionSession $ \es -> withObjectLinkingLayer es (\k -> fmap (\rs -> rs Map.! k) (readIORef resolvers)) $ \linkingLayer -> withIRCompileLayer linkingLayer tm $ \compileLayer ->@@ -121,7 +124,7 @@ let getResolver k = fmap (Map.! k) (readIORef resolvers) setResolver k r = modifyIORef' resolvers (Map.insert k r) withTestModule $ \mod ->- withHostTargetMachine $ \tm -> do+ withHostTargetMachine Reloc.PIC CodeModel.Default CodeGenOpt.Default $ \tm -> do triple <- getTargetMachineTriple tm withExecutionSession $ \es -> withObjectLinkingLayer es getResolver $ \linkingLayer ->
test/LLVM/Test/Target.hs view
@@ -88,7 +88,6 @@ instance Arbitrary MachineCodeOptions where arbitrary = do- sanitizeAddresses <- arbitrary relaxAll <- arbitrary noExecutableStack <- arbitrary fatalWarnings <- arbitrary
test/debug_metadata_3.ll view
@@ -797,7 +797,7 @@ %27 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %20, i64 1, !dbg !4580 %28 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %21, i64 1, !dbg !4581 call void @llvm.dbg.value(metadata %"struct.std::pair"* %28, metadata !4531, metadata !DIExpression()), !dbg !4534- br label %19, !dbg !4582, !llvm.loop !4583+ br label %19, !dbg !4582 ; <label>:29: ; preds = %19 %30 = lshr i64 %12, 3, !dbg !4535@@ -848,7 +848,7 @@ %41 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %34, i64 1, !dbg !4621 %42 = getelementptr inbounds %"struct.std::pair", %"struct.std::pair"* %35, i64 1, !dbg !4622 call void @llvm.dbg.value(metadata %"struct.std::pair"* %42, metadata !4531, metadata !DIExpression()), !dbg !4602- br label %33, !dbg !4623, !llvm.loop !4583+ br label %33, !dbg !4623 ; <label>:43: ; preds = %33 %44 = ptrtoint %"struct.std::pair"* %10 to i64, !dbg !4603@@ -1065,10 +1065,10 @@ !57 = !DIDerivedType(tag: DW_TAG_typedef, name: "pointer", scope: !50, file: !49, line: 86, baseType: !58) !58 = !DIDerivedType(tag: DW_TAG_typedef, name: "pointer", scope: !60, file: !59, line: 59, baseType: !69) !59 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/ext/alloc_traits.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget")-!60 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !61, templateParams: !231, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIiiEES2_EE")+!60 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue, elements: !61, templateParams: !231, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIiiEES2_EE") !61 = !{!62, !217, !220, !224, !227, !228, !229, !230} !62 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !60, baseType: !63, extraData: i32 0)-!63 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::pair<int, int> > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !65, templateParams: !215, identifier: "_ZTSSt16allocator_traitsISaISt4pairIiiEEE")+!63 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::pair<int, int> > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue, elements: !65, templateParams: !215, identifier: "_ZTSSt16allocator_traitsISaISt4pairIiiEEE") !64 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/alloc_traits.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !65 = !{!66, !199, !203, !206, !212} !66 = !DISubprogram(name: "allocate", linkageName: "_ZNSt16allocator_traitsISaISt4pairIiiEEE8allocateERS2_m", scope: !63, file: !64, line: 435, type: !67, isLocal: false, isDefinition: false, scopeLine: 435, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true)@@ -1080,7 +1080,7 @@ !72 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/stl_pair.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !73 = !{!74, !95, !96, !97, !103, !107, !123, !132} !74 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !71, baseType: !75, flags: DIFlagPrivate, extraData: i32 0)-!75 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "__pair_base<int, int>", scope: !13, file: !72, line: 190, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !76, templateParams: !91, identifier: "_ZTSSt11__pair_baseIiiE")+!75 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "__pair_base<int, int>", scope: !13, file: !72, line: 190, size: 8, flags: DIFlagTypePassByValue, elements: !76, templateParams: !91, identifier: "_ZTSSt11__pair_baseIiiE") !76 = !{!77, !81, !82, !87} !77 = !DISubprogram(name: "__pair_base", scope: !75, file: !72, line: 194, type: !78, isLocal: false, isDefinition: false, scopeLine: 194, flags: DIFlagPrototyped, isOptimized: true) !78 = !DISubroutineType(types: !79)@@ -1118,7 +1118,7 @@ !110 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !71, size: 64) !111 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !113, file: !112, line: 1970, baseType: !101) !112 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/type_traits", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget")-!113 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, const std::pair<int, int> &, const std::__nonesuch_no_braces &>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !115, identifier: "_ZTSSt11conditionalILb1ERKSt4pairIiiERKSt20__nonesuch_no_bracesE")+!113 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, const std::pair<int, int> &, const std::__nonesuch_no_braces &>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !115, identifier: "_ZTSSt11conditionalILb1ERKSt4pairIiiERKSt20__nonesuch_no_bracesE") !114 = !{} !115 = !{!116, !118, !119} !116 = !DITemplateValueParameter(name: "_Cond", type: !117, value: i8 1)@@ -1132,7 +1132,7 @@ !124 = !DISubroutineType(types: !125) !125 = !{!110, !100, !126} !126 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !127, file: !112, line: 1970, baseType: !106)-!127 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, std::pair<int, int> &&, std::__nonesuch_no_braces &&>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !128, identifier: "_ZTSSt11conditionalILb1EOSt4pairIiiEOSt20__nonesuch_no_bracesE")+!127 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, std::pair<int, int> &&, std::__nonesuch_no_braces &&>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !128, identifier: "_ZTSSt11conditionalILb1EOSt4pairIiiEOSt20__nonesuch_no_bracesE") !128 = !{!116, !129, !130} !129 = !DITemplateTypeParameter(name: "_Iftrue", type: !106) !130 = !DITemplateTypeParameter(name: "_Iffalse", type: !131)@@ -1305,7 +1305,7 @@ !297 = !DISubprogram(name: "_M_create_storage", linkageName: "_ZNSt12_Vector_baseISt4pairIiiESaIS1_EE17_M_create_storageEm", scope: !50, file: !49, line: 309, type: !275, isLocal: false, isDefinition: false, scopeLine: 309, flags: DIFlagPrivate | DIFlagPrototyped, isOptimized: true) !298 = !{!187, !216} !299 = !DIDerivedType(tag: DW_TAG_typedef, name: "other", scope: !300, file: !59, line: 117, baseType: !301)-!300 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "rebind<std::pair<int, int> >", scope: !60, file: !59, line: 116, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !186, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIiiEES2_E6rebindIS2_EE")+!300 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "rebind<std::pair<int, int> >", scope: !60, file: !59, line: 116, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !186, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIiiEES2_E6rebindIS2_EE") !301 = !DIDerivedType(tag: DW_TAG_typedef, name: "rebind_alloc<std::pair<int, int> >", scope: !63, file: !64, line: 422, baseType: !140) !302 = !DIDerivedType(tag: DW_TAG_typedef, name: "_Link_type", scope: !303, file: !12, line: 465, baseType: !550) !303 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::less<std::__cxx11::basic_string<char> >, std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >", scope: !13, file: !12, line: 444, size: 384, flags: DIFlagTypePassByReference, elements: !304, templateParams: !983, identifier: "_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE")@@ -1316,11 +1316,11 @@ !308 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !306, baseType: !309, extraData: i32 0) !309 = !DIDerivedType(tag: DW_TAG_typedef, name: "_Node_allocator", scope: !303, file: !12, line: 447, baseType: !310) !310 = !DIDerivedType(tag: DW_TAG_typedef, name: "other", scope: !311, file: !59, line: 117, baseType: !529)-!311 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "rebind<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >", scope: !312, file: !59, line: 116, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !461, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EES9_E6rebindISt13_Rb_tree_nodeIS9_EEE")-!312 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !313, templateParams: !459, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EES9_EE")+!311 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "rebind<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >", scope: !312, file: !59, line: 116, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !461, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EES9_E6rebindISt13_Rb_tree_nodeIS9_EEE")+!312 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue, elements: !313, templateParams: !459, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EES9_EE") !313 = !{!314, !447, !450, !454, !455, !456, !457, !458} !314 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !312, baseType: !315, extraData: i32 0)-!315 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !316, templateParams: !445, identifier: "_ZTSSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE")+!315 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue, elements: !316, templateParams: !445, identifier: "_ZTSSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE") !316 = !{!317, !430, !433, !436, !442} !317 = !DISubprogram(name: "allocate", linkageName: "_ZNSt16allocator_traitsISaISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE8allocateERS9_m", scope: !315, file: !64, line: 435, type: !318, isLocal: false, isDefinition: false, scopeLine: 435, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !318 = !DISubroutineType(types: !319)@@ -1330,7 +1330,7 @@ !322 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >", scope: !13, file: !72, line: 208, size: 512, flags: DIFlagTypePassByReference, elements: !323, templateParams: !376, identifier: "_ZTSSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E") !323 = !{!324, !345, !346, !347, !353, !357, !366, !373} !324 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !322, baseType: !325, flags: DIFlagPrivate, extraData: i32 0)-!325 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "__pair_base<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >", scope: !13, file: !72, line: 190, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !326, templateParams: !341, identifier: "_ZTSSt11__pair_baseIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E")+!325 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "__pair_base<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >", scope: !13, file: !72, line: 190, size: 8, flags: DIFlagTypePassByValue, elements: !326, templateParams: !341, identifier: "_ZTSSt11__pair_baseIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E") !326 = !{!327, !331, !332, !337} !327 = !DISubprogram(name: "__pair_base", scope: !325, file: !72, line: 194, type: !328, isLocal: false, isDefinition: false, scopeLine: 194, flags: DIFlagPrototyped, isOptimized: true) !328 = !DISubroutineType(types: !329)@@ -1367,7 +1367,7 @@ !359 = !{!360, !350, !361} !360 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !322, size: 64) !361 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !362, file: !112, line: 1975, baseType: !120)-!362 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<false, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > &, const std::__nonesuch_no_braces &>", scope: !13, file: !112, line: 1974, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !363, identifier: "_ZTSSt11conditionalILb0ERKSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ERKSt20__nonesuch_no_bracesE")+!362 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<false, const std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > &, const std::__nonesuch_no_braces &>", scope: !13, file: !112, line: 1974, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !363, identifier: "_ZTSSt11conditionalILb0ERKSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ERKSt20__nonesuch_no_bracesE") !363 = !{!364, !365, !119} !364 = !DITemplateValueParameter(name: "_Cond", type: !117, value: i8 0) !365 = !DITemplateTypeParameter(name: "_Iftrue", type: !351)@@ -1375,7 +1375,7 @@ !367 = !DISubroutineType(types: !368) !368 = !{!360, !350, !369} !369 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !370, file: !112, line: 1975, baseType: !131)-!370 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<false, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > &&, std::__nonesuch_no_braces &&>", scope: !13, file: !112, line: 1974, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !371, identifier: "_ZTSSt11conditionalILb0EOSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EOSt20__nonesuch_no_bracesE")+!370 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<false, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > &&, std::__nonesuch_no_braces &&>", scope: !13, file: !112, line: 1974, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !371, identifier: "_ZTSSt11conditionalILb0EOSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EOSt20__nonesuch_no_bracesE") !371 = !{!364, !372, !130} !372 = !DITemplateTypeParameter(name: "_Iftrue", type: !356) !373 = !DISubprogram(name: "swap", linkageName: "_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_E4swapERS7_", scope: !322, file: !72, line: 424, type: !374, isLocal: false, isDefinition: false, scopeLine: 424, flags: DIFlagPrototyped, isOptimized: true)@@ -1468,10 +1468,10 @@ !460 = !DITemplateTypeParameter(type: !322) !461 = !{!462} !462 = !DITemplateTypeParameter(name: "_Tp", type: !463)-!463 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", scope: !13, file: !12, line: 216, size: 768, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !464, templateParams: !527, identifier: "_ZTSSt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EE")+!463 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", scope: !13, file: !12, line: 216, size: 768, flags: DIFlagTypePassByValue, elements: !464, templateParams: !527, identifier: "_ZTSSt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EE") !464 = !{!465, !485, !518, !522} !465 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !463, baseType: !466, extraData: i32 0)-!466 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Rb_tree_node_base", scope: !13, file: !12, line: 101, size: 256, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !467, identifier: "_ZTSSt18_Rb_tree_node_base")+!466 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Rb_tree_node_base", scope: !13, file: !12, line: 101, size: 256, flags: DIFlagTypePassByValue, elements: !467, identifier: "_ZTSSt18_Rb_tree_node_base") !467 = !{!468, !469, !472, !473, !474, !477, !483, !484} !468 = !DIDerivedType(tag: DW_TAG_member, name: "_M_color", scope: !466, file: !12, line: 106, baseType: !11, size: 32) !469 = !DIDerivedType(tag: DW_TAG_member, name: "_M_parent", scope: !466, file: !12, line: 107, baseType: !470, size: 64, offset: 64)@@ -1491,7 +1491,7 @@ !483 = !DISubprogram(name: "_S_maximum", linkageName: "_ZNSt18_Rb_tree_node_base10_S_maximumEPS_", scope: !466, file: !12, line: 126, type: !475, isLocal: false, isDefinition: false, scopeLine: 126, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !484 = !DISubprogram(name: "_S_maximum", linkageName: "_ZNSt18_Rb_tree_node_base10_S_maximumEPKS_", scope: !466, file: !12, line: 133, type: !478, isLocal: false, isDefinition: false, scopeLine: 133, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !485 = !DIDerivedType(tag: DW_TAG_member, name: "_M_storage", scope: !463, file: !12, line: 231, baseType: !486, size: 512, offset: 256)-!486 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__aligned_membuf<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", scope: !5, file: !487, line: 47, size: 512, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !488, templateParams: !418, identifier: "_ZTSN9__gnu_cxx16__aligned_membufISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE")+!486 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__aligned_membuf<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", scope: !5, file: !487, line: 47, size: 512, flags: DIFlagTypePassByValue, elements: !488, templateParams: !418, identifier: "_ZTSN9__gnu_cxx16__aligned_membufISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEE") !487 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/ext/aligned_buffer.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !488 = !{!489, !494, !498, !503, !507, !512, !515} !489 = !DIDerivedType(tag: DW_TAG_member, name: "_M_storage", scope: !486, file: !487, line: 54, baseType: !490, size: 512, align: 64)@@ -1591,11 +1591,11 @@ !583 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Rb_tree_key_compare<std::less<std::__cxx11::basic_string<char> > >", scope: !13, file: !12, line: 142, size: 8, flags: DIFlagTypePassByReference, elements: !584, templateParams: !620, identifier: "_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE") !584 = !{!585, !603, !607, !611, !616} !585 = !DIDerivedType(tag: DW_TAG_member, name: "_M_key_compare", scope: !583, file: !12, line: 144, baseType: !586, size: 8)-!586 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "less<std::__cxx11::basic_string<char> >", scope: !13, file: !587, line: 381, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !588, templateParams: !601, identifier: "_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE")+!586 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "less<std::__cxx11::basic_string<char> >", scope: !13, file: !587, line: 381, size: 8, flags: DIFlagTypePassByValue, elements: !588, templateParams: !601, identifier: "_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE") !587 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/stl_function.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !588 = !{!589, !595} !589 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !586, baseType: !590, extraData: i32 0)-!590 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "binary_function<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, bool>", scope: !13, file: !587, line: 118, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !591, identifier: "_ZTSSt15binary_functionINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_bE")+!590 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "binary_function<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>, bool>", scope: !13, file: !587, line: 118, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !591, identifier: "_ZTSSt15binary_functionINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_bE") !591 = !{!592, !593, !594} !592 = !DITemplateTypeParameter(name: "_Arg1", type: !31) !593 = !DITemplateTypeParameter(name: "_Arg2", type: !31)@@ -1750,7 +1750,7 @@ !742 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *>", scope: !13, file: !72, line: 208, size: 128, flags: DIFlagTypePassByValue, elements: !743, templateParams: !794, identifier: "_ZTSSt4pairIPSt18_Rb_tree_node_baseS1_E") !743 = !{!744, !764, !765, !766, !772, !776, !784, !791} !744 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !742, baseType: !745, flags: DIFlagPrivate, extraData: i32 0)-!745 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "__pair_base<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *>", scope: !13, file: !72, line: 190, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !746, templateParams: !761, identifier: "_ZTSSt11__pair_baseIPSt18_Rb_tree_node_baseS1_E")+!745 = distinct !DICompositeType(tag: DW_TAG_class_type, name: "__pair_base<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *>", scope: !13, file: !72, line: 190, size: 8, flags: DIFlagTypePassByValue, elements: !746, templateParams: !761, identifier: "_ZTSSt11__pair_baseIPSt18_Rb_tree_node_baseS1_E") !746 = !{!747, !751, !752, !757} !747 = !DISubprogram(name: "__pair_base", scope: !745, file: !72, line: 194, type: !748, isLocal: false, isDefinition: false, scopeLine: 194, flags: DIFlagPrototyped, isOptimized: true) !748 = !DISubroutineType(types: !749)@@ -1786,14 +1786,14 @@ !778 = !{!779, !769, !780} !779 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !742, size: 64) !780 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !781, file: !112, line: 1970, baseType: !770)-!781 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, const std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &, const std::__nonesuch_no_braces &>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !782, identifier: "_ZTSSt11conditionalILb1ERKSt4pairIPSt18_Rb_tree_node_baseS2_ERKSt20__nonesuch_no_bracesE")+!781 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, const std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &, const std::__nonesuch_no_braces &>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !782, identifier: "_ZTSSt11conditionalILb1ERKSt4pairIPSt18_Rb_tree_node_baseS2_ERKSt20__nonesuch_no_bracesE") !782 = !{!116, !783, !119} !783 = !DITemplateTypeParameter(name: "_Iftrue", type: !770) !784 = !DISubprogram(name: "operator=", linkageName: "_ZNSt4pairIPSt18_Rb_tree_node_baseS1_EaSEOS2_", scope: !742, file: !72, line: 389, type: !785, isLocal: false, isDefinition: false, scopeLine: 389, flags: DIFlagPrototyped, isOptimized: true) !785 = !DISubroutineType(types: !786) !786 = !{!779, !769, !787} !787 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !788, file: !112, line: 1970, baseType: !775)-!788 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &&, std::__nonesuch_no_braces &&>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !789, identifier: "_ZTSSt11conditionalILb1EOSt4pairIPSt18_Rb_tree_node_baseS2_EOSt20__nonesuch_no_bracesE")+!788 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, std::pair<std::_Rb_tree_node_base *, std::_Rb_tree_node_base *> &&, std::__nonesuch_no_braces &&>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !789, identifier: "_ZTSSt11conditionalILb1EOSt4pairIPSt18_Rb_tree_node_baseS2_EOSt20__nonesuch_no_bracesE") !789 = !{!116, !790, !130} !790 = !DITemplateTypeParameter(name: "_Iftrue", type: !775) !791 = !DISubprogram(name: "swap", linkageName: "_ZNSt4pairIPSt18_Rb_tree_node_baseS1_E4swapERS2_", scope: !742, file: !72, line: 424, type: !792, isLocal: false, isDefinition: false, scopeLine: 424, flags: DIFlagPrototyped, isOptimized: true)@@ -1956,7 +1956,7 @@ !948 = !DISubroutineType(types: !949) !949 = !{null, !663, !862, !950} !950 = !DIDerivedType(tag: DW_TAG_typedef, name: "true_type", scope: !13, file: !112, line: 75, baseType: !951)-!951 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "integral_constant<bool, true>", scope: !13, file: !112, line: 57, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !952, templateParams: !962, identifier: "_ZTSSt17integral_constantIbLb1EE")+!951 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "integral_constant<bool, true>", scope: !13, file: !112, line: 57, size: 8, flags: DIFlagTypePassByValue, elements: !952, templateParams: !962, identifier: "_ZTSSt17integral_constantIbLb1EE") !952 = !{!953, !955, !961} !953 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !951, file: !112, line: 59, baseType: !954, flags: DIFlagStaticMember, extraData: i1 true) !954 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !117)@@ -1974,7 +1974,7 @@ !966 = !DISubroutineType(types: !967) !967 = !{null, !663, !862, !968} !968 = !DIDerivedType(tag: DW_TAG_typedef, name: "false_type", scope: !13, file: !112, line: 78, baseType: !969)-!969 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "integral_constant<bool, false>", scope: !13, file: !112, line: 57, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !970, templateParams: !979, identifier: "_ZTSSt17integral_constantIbLb0EE")+!969 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "integral_constant<bool, false>", scope: !13, file: !112, line: 57, size: 8, flags: DIFlagTypePassByValue, elements: !970, templateParams: !979, identifier: "_ZTSSt17integral_constantIbLb0EE") !970 = !{!971, !972, !978} !971 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !969, file: !112, line: 59, baseType: !954, flags: DIFlagStaticMember, extraData: i1 false) !972 = !DISubprogram(name: "operator bool", linkageName: "_ZNKSt17integral_constantIbLb0EEcvbEv", scope: !969, file: !112, line: 62, type: !973, isLocal: false, isDefinition: false, scopeLine: 62, flags: DIFlagPrototyped, isOptimized: true)@@ -2004,10 +2004,10 @@ !996 = !DIDerivedType(tag: DW_TAG_member, name: "_M_start", scope: !993, file: !49, line: 91, baseType: !997, size: 64) !997 = !DIDerivedType(tag: DW_TAG_typedef, name: "pointer", scope: !990, file: !49, line: 86, baseType: !998) !998 = !DIDerivedType(tag: DW_TAG_typedef, name: "pointer", scope: !999, file: !59, line: 59, baseType: !1007)-!999 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1000, templateParams: !1088, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES6_EE")+!999 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<std::__cxx11::basic_string<char> >, std::__cxx11::basic_string<char> >", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue, elements: !1000, templateParams: !1088, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES6_EE") !1000 = !{!1001, !1076, !1079, !1083, !1084, !1085, !1086, !1087} !1001 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !999, baseType: !1002, extraData: i32 0)-!1002 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::__cxx11::basic_string<char> > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1003, templateParams: !1074, identifier: "_ZTSSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE")+!1002 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::__cxx11::basic_string<char> > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue, elements: !1003, templateParams: !1074, identifier: "_ZTSSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE") !1003 = !{!1004, !1059, !1062, !1065, !1071} !1004 = !DISubprogram(name: "allocate", linkageName: "_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m", scope: !1002, file: !64, line: 435, type: !1005, isLocal: false, isDefinition: false, scopeLine: 435, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !1005 = !DISubroutineType(types: !1006)@@ -2162,14 +2162,14 @@ !1154 = !DISubprogram(name: "_M_create_storage", linkageName: "_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_create_storageEm", scope: !990, file: !49, line: 309, type: !1132, isLocal: false, isDefinition: false, scopeLine: 309, flags: DIFlagPrivate | DIFlagPrototyped, isOptimized: true) !1155 = !{!602, !1075} !1156 = !DIDerivedType(tag: DW_TAG_typedef, name: "other", scope: !1157, file: !59, line: 117, baseType: !1158)-!1157 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "rebind<std::__cxx11::basic_string<char> >", scope: !999, file: !59, line: 116, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !601, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES6_E6rebindIS6_EE")+!1157 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "rebind<std::__cxx11::basic_string<char> >", scope: !999, file: !59, line: 116, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !601, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEES6_E6rebindIS6_EE") !1158 = !DIDerivedType(tag: DW_TAG_typedef, name: "rebind_alloc<std::__cxx11::basic_string<char> >", scope: !1002, file: !64, line: 422, baseType: !1011) !1159 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_type", scope: !31, file: !30, line: 88, baseType: !1160) !1160 = !DIDerivedType(tag: DW_TAG_typedef, name: "size_type", scope: !1161, file: !59, line: 61, baseType: !1184)-!1161 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<char>, char>", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1162, templateParams: !1206, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaIcEcEE")+!1161 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__alloc_traits<std::allocator<char>, char>", scope: !5, file: !59, line: 50, size: 8, flags: DIFlagTypePassByValue, elements: !1162, templateParams: !1206, identifier: "_ZTSN9__gnu_cxx14__alloc_traitsISaIcEcEE") !1162 = !{!1163, !1192, !1197, !1201, !1202, !1203, !1204, !1205} !1163 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !1161, baseType: !1164, extraData: i32 0)-!1164 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<char> >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1165, templateParams: !1190, identifier: "_ZTSSt16allocator_traitsISaIcEE")+!1164 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<char> >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue, elements: !1165, templateParams: !1190, identifier: "_ZTSSt16allocator_traitsISaIcEE") !1165 = !{!1166, !1175, !1178, !1181, !1187} !1166 = !DISubprogram(name: "allocate", linkageName: "_ZNSt16allocator_traitsISaIcEE8allocateERS0_m", scope: !1164, file: !64, line: 435, type: !1167, isLocal: false, isDefinition: false, scopeLine: 435, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !1167 = !DISubroutineType(types: !1168)@@ -2216,7 +2216,7 @@ !1208 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !1209, size: 64) !1209 = !DIDerivedType(tag: DW_TAG_typedef, name: "char_type", scope: !1211, file: !1210, line: 277, baseType: !1171) !1210 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/char_traits.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget")-!1211 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "char_traits<char>", scope: !13, file: !1210, line: 275, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1212, templateParams: !1258, identifier: "_ZTSSt11char_traitsIcE")+!1211 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "char_traits<char>", scope: !13, file: !1210, line: 275, size: 8, flags: DIFlagTypePassByValue, elements: !1212, templateParams: !1258, identifier: "_ZTSSt11char_traitsIcE") !1212 = !{!1213, !1219, !1222, !1223, !1227, !1230, !1233, !1236, !1237, !1240, !1246, !1249, !1252, !1255} !1213 = !DISubprogram(name: "assign", linkageName: "_ZNSt11char_traitsIcE6assignERcRKc", scope: !1211, file: !1210, line: 284, type: !1214, isLocal: false, isDefinition: false, scopeLine: 284, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !1214 = !DISubroutineType(types: !1215)@@ -2484,7 +2484,7 @@ !1476 = !DIDerivedType(tag: DW_TAG_typedef, name: "reference", scope: !1461, file: !879, line: 776, baseType: !1477) !1477 = !DIDerivedType(tag: DW_TAG_typedef, name: "reference", scope: !1479, file: !1478, line: 184, baseType: !110) !1478 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/bits/stl_iterator_base_types.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget")-!1479 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "iterator_traits<std::pair<int, int> *>", scope: !13, file: !1478, line: 178, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !1480, identifier: "_ZTSSt15iterator_traitsIPSt4pairIiiEE")+!1479 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "iterator_traits<std::pair<int, int> *>", scope: !13, file: !1478, line: 178, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !1480, identifier: "_ZTSSt15iterator_traitsIPSt4pairIiiEE") !1480 = !{!1481} !1481 = !DITemplateTypeParameter(name: "_Iterator", type: !70) !1482 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !1483, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)@@ -2544,7 +2544,7 @@ !1536 = !{!1537, !1532} !1537 = !DIDerivedType(tag: DW_TAG_typedef, name: "reference", scope: !1518, file: !879, line: 1026, baseType: !1538) !1538 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !1539, file: !112, line: 1970, baseType: !106)-!1539 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, std::pair<int, int> &&, std::pair<int, int> &>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !1540, identifier: "_ZTSSt11conditionalILb1EOSt4pairIiiERS1_E")+!1539 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "conditional<true, std::pair<int, int> &&, std::pair<int, int> &>", scope: !13, file: !112, line: 1969, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !1540, identifier: "_ZTSSt11conditionalILb1EOSt4pairIiiERS1_E") !1540 = !{!116, !129, !1541} !1541 = !DITemplateTypeParameter(name: "_Iffalse", type: !110) !1542 = !DISubprogram(name: "operator->", linkageName: "_ZNKSt13move_iteratorIPSt4pairIiiEEptEv", scope: !1518, file: !879, line: 1050, type: !1543, isLocal: false, isDefinition: false, scopeLine: 1050, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)@@ -2651,7 +2651,7 @@ !1643 = !DIFile(filename: "/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/8.2.1/../../../../include/c++/8.2.1/cstdlib", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !1644 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !13, entity: !1645, file: !1643, line: 128) !1645 = !DIDerivedType(tag: DW_TAG_typedef, name: "ldiv_t", file: !1636, line: 70, baseType: !1646)-!1646 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1636, line: 66, size: 128, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1647, identifier: "_ZTS6ldiv_t")+!1646 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1636, line: 66, size: 128, flags: DIFlagTypePassByValue, elements: !1647, identifier: "_ZTS6ldiv_t") !1647 = !{!1648, !1649} !1648 = !DIDerivedType(tag: DW_TAG_member, name: "quot", scope: !1646, file: !1636, line: 68, baseType: !1504, size: 64) !1649 = !DIDerivedType(tag: DW_TAG_member, name: "rem", scope: !1646, file: !1636, line: 69, baseType: !1504, size: 64, offset: 64)@@ -2786,7 +2786,7 @@ !1778 = !{!93, !1170, !1727} !1779 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !5, entity: !1780, file: !1643, line: 200) !1780 = !DIDerivedType(tag: DW_TAG_typedef, name: "lldiv_t", file: !1636, line: 80, baseType: !1781)-!1781 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1636, line: 76, size: 128, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1782, identifier: "_ZTS7lldiv_t")+!1781 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1636, line: 76, size: 128, flags: DIFlagTypePassByValue, elements: !1782, identifier: "_ZTS7lldiv_t") !1782 = !{!1783, !1785} !1783 = !DIDerivedType(tag: DW_TAG_member, name: "quot", scope: !1781, file: !1636, line: 78, baseType: !1784, size: 64) !1784 = !DIBasicType(name: "long long int", size: 64, encoding: DW_ATE_signed)@@ -2960,11 +2960,11 @@ !1952 = !DIFile(filename: "/usr/include/bits/types/mbstate_t.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !1953 = !DIDerivedType(tag: DW_TAG_typedef, name: "__mbstate_t", file: !1954, line: 21, baseType: !1955) !1954 = !DIFile(filename: "/usr/include/bits/types/__mbstate_t.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget")-!1955 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1954, line: 13, size: 64, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1956, identifier: "_ZTS11__mbstate_t")+!1955 = distinct !DICompositeType(tag: DW_TAG_structure_type, file: !1954, line: 13, size: 64, flags: DIFlagTypePassByValue, elements: !1956, identifier: "_ZTS11__mbstate_t") !1956 = !{!1957, !1958} !1957 = !DIDerivedType(tag: DW_TAG_member, name: "__count", scope: !1955, file: !1954, line: 15, baseType: !93, size: 32) !1958 = !DIDerivedType(tag: DW_TAG_member, name: "__value", scope: !1955, file: !1954, line: 20, baseType: !1959, size: 32, offset: 32)-!1959 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !1955, file: !1954, line: 16, size: 32, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !1960, identifier: "_ZTSN11__mbstate_tUt_E")+!1959 = distinct !DICompositeType(tag: DW_TAG_union_type, scope: !1955, file: !1954, line: 16, size: 32, flags: DIFlagTypePassByValue, elements: !1960, identifier: "_ZTSN11__mbstate_tUt_E") !1960 = !{!1961, !1962} !1961 = !DIDerivedType(tag: DW_TAG_member, name: "__wch", scope: !1959, file: !1954, line: 18, baseType: !6, size: 32) !1962 = !DIDerivedType(tag: DW_TAG_member, name: "__wchb", scope: !1959, file: !1954, line: 19, baseType: !1963, size: 32)@@ -3064,7 +3064,7 @@ !2056 = !DISubroutineType(types: !2057) !2057 = !{!93, !1989, !1772, !2058} !2058 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !2059, size: 64)-!2059 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__va_list_tag", file: !1, size: 192, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !2060, identifier: "_ZTS13__va_list_tag")+!2059 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__va_list_tag", file: !1, size: 192, flags: DIFlagTypePassByValue, elements: !2060, identifier: "_ZTS13__va_list_tag") !2060 = !{!2061, !2062, !2063, !2064} !2061 = !DIDerivedType(tag: DW_TAG_member, name: "gp_offset", scope: !2059, file: !1, baseType: !6, size: 32) !2062 = !DIDerivedType(tag: DW_TAG_member, name: "fp_offset", scope: !2059, file: !1, baseType: !6, size: 32, offset: 32)@@ -3905,7 +3905,7 @@ !2897 = !DISubprogram(name: "truncl", scope: !2571, file: !2571, line: 302, type: !2640, isLocal: false, isDefinition: false, flags: DIFlagPrototyped, isOptimized: true) !2898 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !2899, entity: !2900, file: !2902, line: 178) !2899 = !DINamespace(name: "JS", scope: null)-!2900 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Ok", scope: !20, file: !2901, line: 26, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, identifier: "_ZTSN7mozilla2OkE")+!2900 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Ok", scope: !20, file: !2901, line: 26, size: 8, flags: DIFlagTypePassByValue, elements: !114, identifier: "_ZTSN7mozilla2OkE") !2901 = !DIFile(filename: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/dist/include/mozilla/Result.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !2902 = !DIFile(filename: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/dist/include/js/Result.h", directory: "/home/firefox/firefox/mozilla-unified/obj-opt-x86_64-pc-linux-gnu/widget") !2903 = !{i32 2, !"Dwarf Version", i32 4}@@ -4412,11 +4412,11 @@ !3404 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !3405, size: 64) !3405 = !DIDerivedType(tag: DW_TAG_typedef, name: "Pointer", scope: !3325, file: !3326, line: 193, baseType: !3406) !3406 = !DIDerivedType(tag: DW_TAG_typedef, name: "Type", scope: !3407, file: !3326, line: 57, baseType: !3410)-!3407 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PointerType<base::LaunchOptions::ForkDelegate, mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate> >", scope: !19, file: !3326, line: 55, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !3408, identifier: "_ZTSN7mozilla6detail11PointerTypeIN4base13LaunchOptions12ForkDelegateENS_13DefaultDeleteIS4_EEEE")+!3407 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PointerType<base::LaunchOptions::ForkDelegate, mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate> >", scope: !19, file: !3326, line: 55, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !3408, identifier: "_ZTSN7mozilla6detail11PointerTypeIN4base13LaunchOptions12ForkDelegateENS_13DefaultDeleteIS4_EEEE") !3408 = !{!3349, !3409} !3409 = !DITemplateTypeParameter(name: "D", type: !3335) !3410 = !DIDerivedType(tag: DW_TAG_typedef, name: "Type", scope: !3411, file: !3326, line: 51, baseType: !3346)-!3411 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PointerTypeImpl<base::LaunchOptions::ForkDelegate, mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate>, false>", scope: !19, file: !3326, line: 50, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !3412, identifier: "_ZTSN7mozilla6detail15PointerTypeImplIN4base13LaunchOptions12ForkDelegateENS_13DefaultDeleteIS4_EELb0EEE")+!3411 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PointerTypeImpl<base::LaunchOptions::ForkDelegate, mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate>, false>", scope: !19, file: !3326, line: 50, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !3412, identifier: "_ZTSN7mozilla6detail15PointerTypeImplIN4base13LaunchOptions12ForkDelegateENS_13DefaultDeleteIS4_EELb0EEE") !3412 = !{!3349, !3409, !3413} !3413 = !DITemplateValueParameter(type: !117, value: i8 0) !3414 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !3325, size: 64, flags: DIFlagArtificial | DIFlagObjectPointer)@@ -4447,7 +4447,7 @@ !3439 = !DISubroutineType(types: !3440) !3440 = !{null, !3414, !3405, !3441} !3441 = !DIDerivedType(tag: DW_TAG_typedef, name: "Type", scope: !3442, file: !25, line: 1232, baseType: !3370)-!3442 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Conditional<false, mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate>, const mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate> &>", scope: !20, file: !25, line: 1231, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !3443, identifier: "_ZTSN7mozilla11ConditionalILb0ENS_13DefaultDeleteIN4base13LaunchOptions12ForkDelegateEEERKS5_EE")+!3442 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Conditional<false, mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate>, const mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate> &>", scope: !20, file: !25, line: 1231, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !3443, identifier: "_ZTSN7mozilla11ConditionalILb0ENS_13DefaultDeleteIN4base13LaunchOptions12ForkDelegateEEERKS5_EE") !3443 = !{!3444, !3445, !3446} !3444 = !DITemplateValueParameter(name: "Condition", type: !117, value: i8 0) !3445 = !DITemplateTypeParameter(name: "A", type: !3335)@@ -4457,7 +4457,7 @@ !3449 = !{null, !3414, !3405, !3450} !3450 = !DIDerivedType(tag: DW_TAG_rvalue_reference_type, baseType: !3451, size: 64) !3451 = !DIDerivedType(tag: DW_TAG_typedef, name: "Type", scope: !3452, file: !25, line: 864, baseType: !3335)-!3452 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "RemoveReference<mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate> >", scope: !20, file: !25, line: 863, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !3453, identifier: "_ZTSN7mozilla15RemoveReferenceINS_13DefaultDeleteIN4base13LaunchOptions12ForkDelegateEEEEE")+!3452 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "RemoveReference<mozilla::DefaultDelete<base::LaunchOptions::ForkDelegate> >", scope: !20, file: !25, line: 863, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !3453, identifier: "_ZTSN7mozilla15RemoveReferenceINS_13DefaultDeleteIN4base13LaunchOptions12ForkDelegateEEEEE") !3453 = !{!3454} !3454 = !DITemplateTypeParameter(name: "T", type: !3335) !3455 = !DISubprogram(name: "UniquePtr", scope: !3325, file: !3326, line: 253, type: !3456, isLocal: false, isDefinition: false, scopeLine: 253, flags: DIFlagPublic | DIFlagPrototyped, isOptimized: true)@@ -4479,7 +4479,7 @@ !3471 = !DISubroutineType(types: !3472) !3472 = !{!3473, !3420} !3473 = !DIDerivedType(tag: DW_TAG_typedef, name: "Type", scope: !3474, file: !25, line: 894, baseType: !3477)-!3474 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "AddLvalueReferenceHelper<base::LaunchOptions::ForkDelegate, mozilla::detail::TIsNotVoid>", scope: !19, file: !25, line: 893, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !3475, identifier: "_ZTSN7mozilla6detail24AddLvalueReferenceHelperIN4base13LaunchOptions12ForkDelegateELNS0_8VoidnessE1EEE")+!3474 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "AddLvalueReferenceHelper<base::LaunchOptions::ForkDelegate, mozilla::detail::TIsNotVoid>", scope: !19, file: !25, line: 893, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !3475, identifier: "_ZTSN7mozilla6detail24AddLvalueReferenceHelperIN4base13LaunchOptions12ForkDelegateELNS0_8VoidnessE1EEE") !3475 = !{!3349, !3476} !3476 = !DITemplateValueParameter(name: "V", type: !24, value: i32 1) !3477 = !DIDerivedType(tag: DW_TAG_reference_type, baseType: !3347, size: 64)@@ -4520,7 +4520,7 @@ !3512 = !DIDerivedType(tag: DW_TAG_member, name: "mValue", scope: !3509, file: !3510, line: 154, baseType: !3513, size: 64) !3513 = !DIDerivedType(tag: DW_TAG_typedef, name: "Resource", scope: !3509, file: !3510, line: 70, baseType: !3514) !3514 = !DIDerivedType(tag: DW_TAG_typedef, name: "type", scope: !3515, file: !3508, line: 72, baseType: !2354)-!3515 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "ScopedCloseFileTraits", scope: !20, file: !3508, line: 71, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !3516, identifier: "_ZTSN7mozilla21ScopedCloseFileTraitsE")+!3515 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "ScopedCloseFileTraits", scope: !20, file: !3508, line: 71, size: 8, flags: DIFlagTypePassByValue, elements: !3516, identifier: "_ZTSN7mozilla21ScopedCloseFileTraitsE") !3516 = !{!3517, !3520} !3517 = !DISubprogram(name: "empty", linkageName: "_ZN7mozilla21ScopedCloseFileTraits5emptyEv", scope: !3515, file: !3508, line: 73, type: !3518, isLocal: false, isDefinition: false, scopeLine: 73, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !3518 = !DISubroutineType(types: !3519)@@ -5041,7 +5041,7 @@ !4033 = !DILocation(line: 71, column: 16, scope: !4028, inlinedAt: !4032) !4034 = !DILocalVariable(name: "__a", arg: 1, scope: !4035, file: !64, line: 486, type: !4042) !4035 = distinct !DISubprogram(name: "destroy<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >", linkageName: "_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEEE7destroyIS9_EEvRSB_PT_", scope: !4036, file: !64, line: 486, type: !4061, isLocal: false, isDefinition: true, scopeLine: 487, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !4064, declaration: !4063, retainedNodes: !4066)-!4036 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !4037, templateParams: !4059, identifier: "_ZTSSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEEE")+!4036 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > > >", scope: !13, file: !64, line: 384, size: 8, flags: DIFlagTypePassByValue, elements: !4037, templateParams: !4059, identifier: "_ZTSSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEEE") !4037 = !{!4038, !4044, !4047, !4050, !4056} !4038 = !DISubprogram(name: "allocate", linkageName: "_ZNSt16allocator_traitsISaISt13_Rb_tree_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_EEEE8allocateERSB_m", scope: !4036, file: !64, line: 435, type: !4039, isLocal: false, isDefinition: false, scopeLine: 435, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true) !4039 = !DISubroutineType(types: !4040)@@ -5175,7 +5175,7 @@ !4167 = !DILocation(line: 304, column: 4, scope: !4144, inlinedAt: !4141) !4168 = !DILocation(line: 287, column: 7, scope: !4129) !4169 = distinct !DISubprogram(name: "__destroy<std::__cxx11::basic_string<char> *>", linkageName: "_ZNSt12_Destroy_auxILb0EE9__destroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvT_S9_", scope: !4170, file: !3851, line: 105, type: !3865, isLocal: false, isDefinition: true, scopeLine: 106, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !3869, declaration: !4172, retainedNodes: !4173)-!4170 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Destroy_aux<false>", scope: !13, file: !3851, line: 101, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !4171, identifier: "_ZTSSt12_Destroy_auxILb0EE")+!4170 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "_Destroy_aux<false>", scope: !13, file: !3851, line: 101, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !4171, identifier: "_ZTSSt12_Destroy_auxILb0EE") !4171 = !{!3413} !4172 = !DISubprogram(name: "__destroy<std::__cxx11::basic_string<char> *>", linkageName: "_ZNSt12_Destroy_auxILb0EE9__destroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEvT_S9_", scope: !4170, file: !3851, line: 105, type: !3865, isLocal: false, isDefinition: false, scopeLine: 105, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true, templateParams: !3869) !4173 = !{!4174, !4175}@@ -5206,10 +5206,10 @@ !4198 = distinct !DISubprogram(name: "_M_range_initialize<const std::__cxx11::basic_string<char> *>", linkageName: "_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_range_initializeIPKS5_EEvT_SB_St20forward_iterator_tag", scope: !2924, file: !49, line: 1462, type: !4199, isLocal: false, isDefinition: true, scopeLine: 1464, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !4206, declaration: !4205, retainedNodes: !4208) !4199 = !DISubroutineType(types: !4200) !4200 = !{null, !2930, !1038, !1038, !4201}-!4201 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "forward_iterator_tag", scope: !13, file: !1478, line: 95, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !4202, identifier: "_ZTSSt20forward_iterator_tag")+!4201 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "forward_iterator_tag", scope: !13, file: !1478, line: 95, size: 8, flags: DIFlagTypePassByValue, elements: !4202, identifier: "_ZTSSt20forward_iterator_tag") !4202 = !{!4203} !4203 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !4201, baseType: !4204, extraData: i32 0)-!4204 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "input_iterator_tag", scope: !13, file: !1478, line: 89, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, identifier: "_ZTSSt18input_iterator_tag")+!4204 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "input_iterator_tag", scope: !13, file: !1478, line: 89, size: 8, flags: DIFlagTypePassByValue, elements: !114, identifier: "_ZTSSt18input_iterator_tag") !4205 = !DISubprogram(name: "_M_range_initialize<const std::__cxx11::basic_string<char> *>", linkageName: "_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_range_initializeIPKS5_EEvT_SB_St20forward_iterator_tag", scope: !2924, file: !49, line: 1462, type: !4199, isLocal: false, isDefinition: false, scopeLine: 1462, flags: DIFlagProtected | DIFlagPrototyped, isOptimized: true, templateParams: !4206) !4206 = !{!4207} !4207 = !DITemplateTypeParameter(name: "_ForwardIterator", type: !1038)@@ -5229,7 +5229,7 @@ !4221 = !DISubroutineType(types: !4222) !4222 = !{!4223, !1038, !1038} !4223 = !DIDerivedType(tag: DW_TAG_typedef, name: "difference_type", scope: !4224, file: !1478, line: 193, baseType: !1503)-!4224 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "iterator_traits<const std::__cxx11::basic_string<char> *>", scope: !13, file: !1478, line: 189, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !4225, identifier: "_ZTSSt15iterator_traitsIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE")+!4224 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "iterator_traits<const std::__cxx11::basic_string<char> *>", scope: !13, file: !1478, line: 189, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !4225, identifier: "_ZTSSt15iterator_traitsIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE") !4225 = !{!4226} !4226 = !DITemplateTypeParameter(name: "_Iterator", type: !1038) !4227 = !{!4218, !4228}@@ -5243,10 +5243,10 @@ !4235 = distinct !DISubprogram(name: "__distance<const std::__cxx11::basic_string<char> *>", linkageName: "_ZSt10__distanceIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEENSt15iterator_traitsIT_E15difference_typeES9_S9_St26random_access_iterator_tag", scope: !13, file: !4220, line: 98, type: !4236, isLocal: false, isDefinition: true, scopeLine: 100, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !4247, retainedNodes: !4244) !4236 = !DISubroutineType(types: !4237) !4237 = !{!4223, !1038, !1038, !4238}-!4238 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "random_access_iterator_tag", scope: !13, file: !1478, line: 103, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !4239, identifier: "_ZTSSt26random_access_iterator_tag")+!4238 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "random_access_iterator_tag", scope: !13, file: !1478, line: 103, size: 8, flags: DIFlagTypePassByValue, elements: !4239, identifier: "_ZTSSt26random_access_iterator_tag") !4239 = !{!4240} !4240 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !4238, baseType: !4241, extraData: i32 0)-!4241 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "bidirectional_iterator_tag", scope: !13, file: !1478, line: 99, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !4242, identifier: "_ZTSSt26bidirectional_iterator_tag")+!4241 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "bidirectional_iterator_tag", scope: !13, file: !1478, line: 99, size: 8, flags: DIFlagTypePassByValue, elements: !4242, identifier: "_ZTSSt26bidirectional_iterator_tag") !4242 = !{!4243} !4243 = !DIDerivedType(tag: DW_TAG_inheritance, scope: !4241, baseType: !4201, extraData: i32 0) !4244 = !{!4234, !4245, !4246}@@ -5342,7 +5342,7 @@ !4334 = !DILocation(line: 111, column: 9, scope: !4312) !4335 = !DILocation(line: 111, column: 2, scope: !4312) !4336 = distinct !DISubprogram(name: "__uninit_copy<const std::__cxx11::basic_string<char> *, std::__cxx11::basic_string<char> *>", linkageName: "_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS7_EET0_T_SC_SB_", scope: !4337, file: !4262, line: 76, type: !4276, isLocal: false, isDefinition: true, scopeLine: 78, flags: DIFlagPrototyped, isOptimized: true, unit: !0, templateParams: !4282, declaration: !4340, retainedNodes: !4341)-!4337 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__uninitialized_copy<false>", scope: !13, file: !4262, line: 72, size: 8, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !114, templateParams: !4338, identifier: "_ZTSSt20__uninitialized_copyILb0EE")+!4337 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "__uninitialized_copy<false>", scope: !13, file: !4262, line: 72, size: 8, flags: DIFlagTypePassByValue, elements: !114, templateParams: !4338, identifier: "_ZTSSt20__uninitialized_copyILb0EE") !4338 = !{!4339} !4339 = !DITemplateValueParameter(name: "_TrivialValueTypes", type: !117, value: i8 0) !4340 = !DISubprogram(name: "__uninit_copy<const std::__cxx11::basic_string<char> *, std::__cxx11::basic_string<char> *>", linkageName: "_ZNSt20__uninitialized_copyILb0EE13__uninit_copyIPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPS7_EET0_T_SC_SB_", scope: !4337, file: !4262, line: 76, type: !4276, isLocal: false, isDefinition: false, scopeLine: 76, flags: DIFlagPrototyped | DIFlagStaticMember, isOptimized: true, templateParams: !4282)
test/debug_metadata_4.ll view
file too large to diff
test/debug_metadata_5.ll view
file too large to diff